﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using CMISLibrary.Libraries;
using CMISLibrary;
using System.Data;
using System.Threading;
using BaocaoNPC.Usercontrols.reports;
using BaocaoNPC.common;
using bus_TienichNPC;
using System.Collections.Generic;
using CMIS2.BaocaoNPC.Usercontrols;

namespace BaocaoNPC.Usercontrols
{
    /// <summary>
    /// Interaction logic for VIPHAM_DTU.xaml
    /// </summary>
    public partial class VIPHAM_DTU : UserControl
    {

        #region Khai báo biến

        public String strMa_dviqly = NPCUS_DanhMuc.Pglobal.strMa_dviqly != "" && NPCUS_DanhMuc.Pglobal.strMa_dviqly != null ? NPCUS_DanhMuc.Pglobal.strMa_dviqly : "PA";
        public String strTenDNHap = NPCUS_DanhMuc.Pglobal.strTen_dangnhap != "" && NPCUS_DanhMuc.Pglobal.strTen_dangnhap != null ? NPCUS_DanhMuc.Pglobal.strTen_dangnhap : "PA";
        public String strTen_dviqly = NPCUS_DanhMuc.Pglobal.strTen_dviqly != "" && NPCUS_DanhMuc.Pglobal.strTen_dviqly != null ? NPCUS_DanhMuc.Pglobal.strTen_dviqly : "cty..";
        public String strTen_dviqly_CT = NPCUS_DanhMuc.Pglobal.strTen_dviqly_CT != "" && NPCUS_DanhMuc.Pglobal.strTen_dviqly_CT != null ? NPCUS_DanhMuc.Pglobal.strTen_dviqly_CT : "cap tren";


        string strError = "";
        public string strMa_ddo = "";
        public string strMa_khang = "";
        string strSo_cto = "";
        string strMa_cto = "";
        string strChuoi_gia = "";
        string strLoai_khang = "";
        string strDCHI_TTOAN = "";
        string strBCS = "";

        string strBtnClick = "";
        string strSuaThemmoi = "";
        string strFind = "";


        string strNguoiTao = "";

        double CHISO_BGBT = 0; // chỉ số đúng gần nhất
        double CHISO_BGCD = 0;
        double CHISO_BGTD = 0;
        double CHISO_ENDBT = 0; // chỉ số khi phát hiện Vipham
        double CHISO_ENDCD = 0;
        double CHISO_ENDTD = 0;
        double CHISO_KYbBT = 0; // chỉ số gần nhất sau chỉ số đúng gần nhất -> để trừ lấy sluong đoạn đầu
        double CHISO_KYbCD = 0;
        double CHISO_KYbTD = 0;
        double CHISO_KYeBT = 0; // chỉ số gần nhất trước chỉ số vipham -> để trừ lấy sluong đoạn cuối
        double CHISO_KYeCD = 0;
        double CHISO_KYeTD = 0;
        double CHISO_CU = 0;
        double CHISO_MOI = 0;

        double SongayVP = 0;
        double SanluongSudung = 0;
        double SanluongSudungNgay = 0;
        double SanluongHedd = 0;
        double SanluongHeddBT = 0;
        double SanluongHeddCD = 0;
        double SanluongHeddTD = 0;
        double SanluongVP = 0;
        double sanluongKy = 0;

        double hsn = 0;
        double hsnBG = 0; // hệ số nhân của đoạn đầu
        double hsnEND = 0;// hệ số nhân của đoạn cuối
        double sogiomatdien = 0;

        double Thanhtien = 0;

        double giaMaxkhongSH = 0;
        double giaMaxSH = 0;
        double giaMax = 0;

        double sanluongKy1BT = 0;
        double sanluongKy1CD = 0;
        double sanluongKy1TD = 0;
        double sanluongKy2BT = 0;
        double sanluongKy2CD = 0;
        double sanluongKy2TD = 0;
        double sanluongKy3BT = 0;
        double sanluongKy3CD = 0;
        double sanluongKy3TD = 0;

        Int64 Ky = 0;
        Int64 Ky1 = 1;
        Int64 Ky2 = 2;
        Int64 Ky3 = 3;

        Int64 ID_CHISO = 0;
        Int64 intID_VIPHAM = 0;
        Int64 nextSEQChiso = 0;

        Int64 Id_chisoKy1BT = 0;
        Int64 Id_chisoKy1CD = 0;
        Int64 Id_chisoKy1TD = 0;
        Int64 Id_chisoKy2BT = 0;
        Int64 Id_chisoKy2CD = 0;
        Int64 Id_chisoKy2TD = 0;
        Int64 Id_chisoKy3BT = 0;
        Int64 Id_chisoKy3CD = 0;
        Int64 Id_chisoKy3TD = 0;
        Int64 Id_chisoKy0 = 0;
        Int64 Id_chisoKy10 = 0;

        int intDongFocus = 0;

        bool checkInsert = false;
        bool checkTinhVP = false;
        bool checkLayCancu = false;
        bool checkTinhDsachTbi = false;
        bool checkCoHedd = false;
        bool checkCoCSdau = false;

        DateTime dtNgayDKY;
        DateTime dtNgayCKY;

        DateTime dtimeNgayBegin;
        DateTime dtimeNgayStop;
        DateTime dtimeNgaytao;
        DateTime dtimeNgayCSKYb;
        DateTime dtimeNgayCSKYe;

        DataSet dsNPC_VIPHAM_KHANG_Entity;
        DataSet dsNPC_VIPHAM_CHISO_Entity;
        DataSet dsNPC_VIPHAM_DDO_Entity;
        DataSet dsNPC_VIPHAM_DSACHTBI_Entity;

        DataTable dt = new DataTable();
        DataTable dtHienthi = new DataTable();
        DataSet dsKH;
        DataSet dsBD;
        DataSet dsCancu;

        // NPC_VIPHAM_DSACHTBI
        Int64 ID_TBI;
        string strTEN_TBI = "";
        Int64 SO_LUONG;
        double CONG_SUAT;
        double COSFI;
        double THOIGIAN_SDUNG;
        double SO_NGAY;
        double DNANG_SDUNG;

        //cls_TienichNPC_bus cls = new cls_TienichNPC_bus();
        //cls_NPC_VIPHAM_KHANG cls_Khang = new cls_NPC_VIPHAM_KHANG();
        //cls_NPC_VIPHAM_CHISO cls_Chiso = new cls_NPC_VIPHAM_CHISO();
        //cls_NPC_VIPHAM_DDO cls_DDO = new cls_NPC_VIPHAM_DDO();
        //cls_NPC_VIPHAM_DSACHTBI cls_DsachTbi = new cls_NPC_VIPHAM_DSACHTBI();

        #endregion

        public VIPHAM_DTU()
        {
            InitializeComponent();
            Component.TabIndexManager.RegisterTabManager(this);

            CreatdgrDSach_Thietbi();

            dsNPC_VIPHAM_KHANG_Entity = new BCNPCEntities.TRUY_THU.NPC_VIPHAM_KHANG();
            dsNPC_VIPHAM_CHISO_Entity = new BCNPCEntities.TRUY_THU.NPC_VIPHAM_CHISO();
            dsNPC_VIPHAM_DDO_Entity = new BCNPCEntities.TRUY_THU.NPC_VIPHAM_DDO();
            dsNPC_VIPHAM_DSACHTBI_Entity = new BCNPCEntities.TRUY_THU.NPC_VIPHAM_DSACHTBI();

            btnThemMoi.IsEnabled = true;
            btnSua.IsEnabled = false;
            btnHuy.IsEnabled = false;
            btnGhi.IsEnabled = false;
            btnIn.IsEnabled = false;
            btnXoa.IsEnabled = false;
            btnLayDuLieu_I.IsEnabled = false;
            btnLayCancu.IsEnabled = false;

            checkCoHedd = true;
            checkCoCSdau = true;

            Enable_Items(false);
        }

        public void CreatdgrDSach_Thietbi()
        {
            try
            {
                //MA_DVIQLY, ID_VIPHAM, ID_TBI, TEN_TBI, SO_LUONG, CONG_SUAT, COSFI, THOIGIAN_SDUNG, DNANG_SDUNG, NGUOI_TAO, NGAY_TAO
                dt.Columns.Add("MA_DVIQLY");
                dt.Columns.Add("ID_VIPHAM");
                dt.Columns.Add("ID_TBI");
                dt.Columns.Add("TEN_TBI");
                dt.Columns.Add("SO_LUONG");
                dt.Columns.Add("CONG_SUAT");
                dt.Columns.Add("COSFI");
                dt.Columns.Add("THOIGIAN_SDUNG");
                dt.Columns.Add("DNANG_SDUNG");
                dt.Columns.Add("NGUOI_TAO");
                dt.Columns.Add("NGAY_TAO");
                DataRow dr = dt.NewRow();
                dt.Rows.Add(dr);
                dt.AcceptChanges();
                dgrDSach_Thietbi.ItemsSource = dt.DefaultView;
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
        }

        public void Items_text(string text)
        {
            txtMa_ddo_I.Text = text;
            txtTen_khang.Text = text;
            txtDia_chi.Text = text;
            txtDai_dien_mua.Text = text;
            txtChucvu_mua.Text = text;
            txtDai_dien_mua1.Text = text;
            txtChucvu_mua1.Text = text;
            txtMa_VP.Text = text;

            txtHoten1.Text = text;
            txtHoten2.Text = text;
            txtChucvu1.Text = text;
            txtChucvu2.Text = text;

            txtLydobatdau.Text = text;
            txtCancuTTBQ.Text = text;
            dtpKiemtra.Text = text;
            txtSobbktra.Text = text;
            txtNguyennhan.Text = text;
            dtpBdVipham.Text = text;
            txtChisodungBT.Text = text;
            txtChisodungCD.Text = text;
            txtChisodungTD.Text = text;
            dtpKtVipham.Text = text;
            txtChisoVPBT.Text = text;
            txtChisoVPCD.Text = text;
            txtChisoVPTD.Text = text;
            txtSogiomatdienVP.Text = text;
            txtSanluongHedd.Text = text;
            txtGia.Text = text;
            txtSocto.Text = text;
            txtMacto.Text = text;
            txtLoai_cto.Text = text;
            dt.Rows.Clear();
            dgrDSach_Thietbi.ItemsSource = dt.DefaultView;
        }

        public void Enable_Items(bool var)
        {
            txtMa_ddo_I.IsEnabled = var;
            txtTen_khang.IsEnabled = var;
            txtDia_chi.IsEnabled = var;
            txtDai_dien_mua.IsEnabled = var;
            txtChucvu_mua.IsEnabled = var;
            txtDai_dien_mua1.IsEnabled = var;
            txtChucvu_mua1.IsEnabled = var;
            txtMa_VP.IsEnabled = var;

            txtHoten1.IsEnabled = var;
            txtHoten2.IsEnabled = var;
            txtChucvu1.IsEnabled = var;
            txtChucvu2.IsEnabled = var;

            txtNguyennhan.IsEnabled = var;
            txtLydobatdau.IsEnabled = var;
            txtCancuTTBQ.IsEnabled = var;
            dtpKiemtra.IsEnabled = var;
            txtSobbktra.IsEnabled = var;
            dtpBdVipham.IsEnabled = var;
            dtpKtVipham.IsEnabled = var;
            txtSogiomatdienVP.IsEnabled = var;
            txtGia.IsEnabled = var;
            dgrDSach_Thietbi.IsEnabled = var;
            cboLoaiGia.IsEnabled = var;


            if (strSuaThemmoi == "SUA")
            {
                ckbKhongHedd.IsEnabled = false;
                ckbKhongcsDau.IsEnabled = false;
            }
            else
            {
                ckbKhongHedd.IsEnabled = var;
                ckbKhongcsDau.IsEnabled = var;
            }

            if (ckbKhongHedd.IsChecked == true)
            {
                txtChisodungBT.IsEnabled = false;
                txtChisodungCD.IsEnabled = false;
                txtChisodungTD.IsEnabled = false;
                txtChisoVPBT.IsEnabled = false;
                txtChisoVPCD.IsEnabled = false;
                txtChisoVPTD.IsEnabled = false;
                txtSanluongHedd.IsEnabled = false;

                txtSocto.IsEnabled = false;
                txtMacto.IsEnabled = false;
                txtLoai_cto.IsEnabled = false;
            }
            else
            {
                txtChisodungBT.IsEnabled = var;
                txtChisodungCD.IsEnabled = var;
                txtChisodungTD.IsEnabled = var;
                txtChisoVPBT.IsEnabled = var;
                txtChisoVPCD.IsEnabled = var;
                txtChisoVPTD.IsEnabled = var;
                txtSanluongHedd.IsEnabled = var;

                txtSocto.IsEnabled = var;
                txtMacto.IsEnabled = var;
                txtLoai_cto.IsEnabled = var;
            }

            if (ckbKhongcsDau.IsChecked == true)
            {
                txtChisodungBT.IsEnabled = false;
                txtChisodungCD.IsEnabled = false;
                txtChisodungTD.IsEnabled = false;
            }
            else
            {
                txtChisodungBT.IsEnabled = var;
                txtChisodungCD.IsEnabled = var;
                txtChisodungTD.IsEnabled = var;
            }
        }

        private void CheckIsEnableButtonSuaXoa()
        {

            if (txtMa_VP.Text.ToString() != string.Empty)
            {
                if (strBtnClick == "btnThemMoi" || strBtnClick == "SUA")
                {
                    btnSua.IsEnabled = false;
                    btnXoa.IsEnabled = false;
                    btnIn.IsEnabled = false;
                }
                else
                {
                    btnSua.IsEnabled = true;
                    btnXoa.IsEnabled = true;
                    btnIn.IsEnabled = true;
                }
            }
            else
            {
                btnSua.IsEnabled = false;
                btnXoa.IsEnabled = false;
                btnIn.IsEnabled = false;
            }
        }

        public bool check_Input_Items()
        {
            try
            {
                Int32 intt = 0;
                decimal dc = 0;

                if (txtMa_ddo_I.Text.Trim().ToString() == string.Empty)
                {
                    MessageBox.Show("Mã điểm đo trống !");
                    txtMa_ddo_I.Focus();
                    return false;
                }

                if (txtTen_khang.Text.Trim().ToString() == string.Empty)
                {
                    MessageBox.Show("Hãy nhập tên khách hàng ");
                    txtTen_khang.Focus();
                    return false;
                }

                if (txtDia_chi.Text.Trim().ToString() == string.Empty)
                {
                    MessageBox.Show("Hãy nhập địa chỉ khách hàng !");
                    txtDia_chi.Focus();
                    return false;
                }

                if (txtDai_dien_mua.Text.Trim().ToString() == string.Empty)
                {
                    MessageBox.Show("Hãy nhập đại diện bên mua");
                    txtDai_dien_mua.Focus();
                    return false;
                }

                if (txtChucvu_mua.Text.Trim().ToString() == string.Empty)
                {
                    MessageBox.Show("Hãy nhập chức vụ của đại diện bên mua");
                    txtChucvu_mua.Focus();
                    return false;
                }

                //if (txtMa_VP.Text.Trim().ToString() == string.Empty)
                //{
                //    MessageBox.Show("Không có mã truy thu !");
                //    return false;
                //}

                if (txtHoten1.Text.Trim().ToString() == string.Empty)
                {
                    MessageBox.Show("Hãy nhập họ tên đại diện bên bán điện !");
                    txtHoten1.Focus();
                    return false;
                }

                if (txtChucvu1.Text.Trim().ToString() == string.Empty)
                {
                    MessageBox.Show("Hãy nhập chức vụ của đại diện bên bán ");
                }

                if (txtNguyennhan.Text.Trim().ToString() == string.Empty)
                {
                    MessageBox.Show("Hãy nhập nguyên nhân !");
                    txtNguyennhan.Focus();
                    return false;
                }

                if (txtLydobatdau.Text.Trim().ToString() == string.Empty)
                {
                    MessageBox.Show("Hãy nhập lý do lấy thời điểm bắt đầu tính bồi thường !");
                    txtLydobatdau.Focus();
                    return false;
                }

                if (txtCancuTTBQ.Text.Trim().ToString() == string.Empty)
                {
                    MessageBox.Show("Hãy nhập căn cứ tính sản lượng tiêu thụ bình quân ngày !");
                    txtCancuTTBQ.Focus();
                    return false;
                }

                if (!dtpKiemtra.SelectedDate.HasValue)
                {
                    MessageBox.Show("Hãy nhập ngày kiểm tra vi phạm !");
                    return false;
                }

                if (txtSobbktra.Text.Trim().ToString() == string.Empty)
                {
                    MessageBox.Show("Hãy nhập số biên bản kiểm tra !");
                    txtSobbktra.Focus();
                    return false;
                }

                if (!dtpBdVipham.SelectedDate.HasValue)
                {
                    MessageBox.Show("Hãy nhập ngày chưa vi phạm gần nhất !");
                    return false;
                }


                if (!dtpKtVipham.SelectedDate.HasValue)
                {
                    MessageBox.Show("Hãy nhập ngày phát hiện vi phạm !");
                    return false;
                }


                if (!decimal.TryParse(txtSogiomatdienVP.Text.Trim().ToString(), out dc))
                {
                    MessageBox.Show("Hãy nhập số giờ mất điện trong thời gian vi phạm !");
                    txtSogiomatdienVP.Focus();
                    return false;
                }

                if (!decimal.TryParse(txtGia.Text.Trim().ToString(), out dc))
                {
                    MessageBox.Show("Hãy nhập giá tính phạt vi phạm !");
                    txtGia.Focus();
                    return false;
                }

                if (checkCoHedd == true) // có hệ đo đếm 
                {
                    if (checkCoCSdau == true)
                    {
                        if (!decimal.TryParse(txtChisodungBT.Text.Trim().ToString(), out dc))
                        {
                            MessageBox.Show("Hãy nhập chỉ số bộ BT đúng gần nhất !");
                            txtChisodungBT.Focus();
                            return false;
                        }

                        if (!decimal.TryParse(txtChisodungCD.Text.Trim().ToString(), out dc))
                        {
                            MessageBox.Show("Hãy nhập chỉ số bộ CD đúng gần nhất !");
                            txtChisodungCD.Focus();
                            return false;
                        }

                        if (!decimal.TryParse(txtChisodungTD.Text.Trim().ToString(), out dc))
                        {
                            MessageBox.Show("Hãy nhập chỉ số bộ TD đúng gần nhất !");
                            txtChisodungTD.Focus();
                            return false;
                        }
                    }

                    if (!decimal.TryParse(txtChisoVPBT.Text.Trim().ToString(), out dc))
                    {
                        MessageBox.Show("Hãy nhập chỉ số bộ BT khi phát hiện vi phạm !");
                        txtChisoVPBT.Focus();
                        return false;
                    }

                    if (!decimal.TryParse(txtChisoVPCD.Text.Trim().ToString(), out dc))
                    {
                        MessageBox.Show("Hãy nhập chỉ số bộ CD khi phát hiện vi phạm !");
                        txtChisoVPCD.Focus();
                        return false;
                    }

                    if (!decimal.TryParse(txtChisoVPTD.Text.Trim().ToString(), out dc))
                    {
                        MessageBox.Show("Hãy nhập chỉ số bộ TD khi phát hiện vi phạm !");
                        txtChisoVPTD.Focus();
                        return false;
                    }

                    if (!decimal.TryParse(txtSanluongHedd.Text.Trim().ToString(), out dc))
                    {
                        MessageBox.Show("Hãy nhập sản lượng qua hệ đo đếm !");
                        txtSanluongHedd.Focus();
                        return false;
                    }
                    else
                    {
                        if (Convert.ToDecimal(txtSanluongHedd.Text.Trim().ToString()) < 0)
                        {
                            MessageBox.Show("Hãy nhập sản lượng qua hệ đo đếm không nhỏ hơn 0 !");
                            txtSanluongHedd.Focus();
                            return false;
                        }
                    }

                    if (txtSocto.Text.Trim().ToString() == string.Empty)
                    {
                        MessageBox.Show("Hãy nhập số công tơ !");
                        txtSocto.Focus();
                        return false;
                    }

                    if (txtMacto.Text.Trim().ToString() == string.Empty)
                    {
                        MessageBox.Show("Hãy nhập mã tơ !");
                        txtMacto.Focus();
                        return false;
                    }

                    if (txtLoai_cto.Text.Trim().ToString() == string.Empty)
                    {
                        MessageBox.Show("Hãy nhập chủng loại công tơ !");
                        txtLoai_cto.Focus();
                        return false;
                    }
                }

                TimeSpan ts = dtpKtVipham.SelectedDate.Value.Date - dtpBdVipham.SelectedDate.Value.Date;
                if (ts.Days > 365)
                {
                    MessageBox.Show("Số ngày tính vi phạm không được lớn hơn 365 ngày " + "\n" + "Nhập lại Ngày chưa vi phạm gần nhất và Ngày phát hiện vi phạm !");
                    return false;
                }

                return true;

            }
            catch (Exception ex)
            {
                return false;
                MessageBox.Show(ex.ToString());
            }
        }

        private void setEntity_KH(string strBtnClick)
        {
            try
            {
                dsNPC_VIPHAM_KHANG_Entity.Tables["NPC_VIPHAM_KHANG"].Clear();
                DataRow dr = dsNPC_VIPHAM_KHANG_Entity.Tables["NPC_VIPHAM_KHANG"].NewRow();
                switch (strBtnClick)
                {
                    case "btnGhi":

                        dr["ID_VIPHAM"] = txtMa_VP.Text.ToString();
                        dr["MA_DVIQLY"] = strMa_dviqly;
                        dr["TEN_DDIEN1"] = txtHoten1.Text.ToString().Trim();
                        dr["CVU_DDIEN1"] = txtChucvu1.Text.ToString().Trim();
                        if (txtHoten2.Text.Trim().ToString() != string.Empty)
                        {
                            dr["TEN_DDIEN2"] = txtHoten2.Text.ToString().Trim();
                        }
                        else
                        {
                            dr["TEN_DDIEN2"] = null;
                        }

                        if (txtChucvu2.Text.Trim().ToString() != string.Empty)
                        {
                            dr["CVU_DDIEN2"] = txtChucvu2.Text.ToString().Trim();
                        }
                        else
                        {
                            dr["CVU_DDIEN2"] = null;
                        }


                        dr["TEN_DDIEN3"] = null;


                        dr["CVU_DDIEN3"] = null;

                        dr["MA_KHANG"] = strMa_khang;
                        dr["TEN_KHANG"] = txtTen_khang.Text.ToString().Trim();
                        dr["MA_DDO"] = strMa_ddo;
                        dr["DIA_CHI"] = txtDia_chi.Text.ToString().Trim();

                        if (strSuaThemmoi == "THEM")
                        {
                            dr["NGUOI_TAO"] = strTenDNHap;
                            dr["NGAY_TAO"] = DateTime.Now;
                            dr["NGUOI_SUA"] = strTenDNHap;
                            dr["NGAY_SUA"] = DateTime.Now;
                        }
                        else
                        {
                            dr["NGUOI_TAO"] = strNguoiTao;
                            dr["NGAY_TAO"] = dtimeNgaytao;
                            dr["NGUOI_SUA"] = strTenDNHap;
                            dr["NGAY_SUA"] = DateTime.Now;
                        }
                        dr["DDIEN_MUA"] = txtDai_dien_mua.Text.Trim().ToString().Trim();
                        dr["CVU_MUA"] = txtChucvu_mua.Text.Trim().ToString().Trim();
                        dr["NGUYEN_NHAN"] = txtNguyennhan.Text.Trim().ToString().Trim();

                        if (txtDai_dien_mua1.Text.Trim().ToString() != string.Empty)
                        {
                            dr["DDIEN_MUA2"] = txtDai_dien_mua1.Text.Trim().ToString();
                        }
                        else
                        {
                            dr["DDIEN_MUA2"] = null;
                        }

                        if (txtChucvu_mua1.Text.Trim().ToString() != string.Empty)
                        {
                            dr["CVU_MUA2"] = txtChucvu_mua1.Text.Trim().ToString();
                        }
                        else
                        {
                            dr["CVU_MUA2"] = null;
                        }

                        dr["LOAI_KHANG"] = "20";
                        dr["DCHI_TTOAN"] = strDCHI_TTOAN;

                        dr["LOAI_CTO"] = txtLoai_cto.Text.Trim().ToString() == string.Empty ? " " : txtLoai_cto.Text.Trim().ToString();
                        dr["NGAY_KDINH"] = DateTime.Now;
                        dr["CAN_CU"] = " ";
                        dr["HS_COSFI"] = "";
                        dr["KCOSFI"] = "";
                        dr["LYDO_TGIAN_BDAU"] = txtLydobatdau.Text.Trim().ToString();
                        dr["CANCU_TTBQ"] = txtCancuTTBQ.Text.Trim().ToString();
                        dr["SO_BB_KTRA"] = txtSobbktra.Text.Trim().ToString();
                        dr["NGAY_KTRA"] = dtpKiemtra.SelectedDate.Value.Date;

                        break;

                    case "btnXoa":
                        dr["ID_VIPHAM"] = txtMa_VP.Text.ToString();
                        dr["MA_DVIQLY"] = strMa_dviqly;
                        dr["TEN_DDIEN1"] = txtHoten1.Text.ToString();
                        dr["CVU_DDIEN1"] = txtChucvu1.Text.ToString();
                        dr["TEN_DDIEN2"] = null;
                        dr["CVU_DDIEN2"] = null;
                        dr["TEN_DDIEN3"] = null;
                        dr["CVU_DDIEN3"] = null;
                        dr["MA_KHANG"] = strMa_khang;
                        dr["TEN_KHANG"] = txtTen_khang.Text.ToString();
                        dr["DIA_CHI"] = txtDia_chi.Text.ToString();
                        dr["NGUOI_TAO"] = strTenDNHap;
                        dr["NGAY_TAO"] = DateTime.Now;
                        dr["DDIEN_MUA"] = " ";
                        dr["CVU_MUA"] = " ";
                        dr["NGUYEN_NHAN"] = " ";
                        dr["LOAI_KHANG"] = "10";
                        dr["DCHI_TTOAN"] = strDCHI_TTOAN;
                        dr["LOAI_CTO"] = " ";
                        dr["NGAY_KDINH"] = DateTime.Now;
                        dr["CAN_CU"] = " ";
                        dr["DDIEN_MUA2"] = " ";
                        dr["CVU_MUA2"] = " ";
                        dr["HS_COSFI"] = "";
                        dr["KCOSFI"] = "";
                        dr["LYDO_TGIAN_BDAU"] = " ";
                        dr["CANCU_TTBQ"] = " ";
                        dr["SO_BB_KTRA"] = " ";
                        dr["NGAY_KTRA"] = DateTime.Now;

                        break;
                    case "btnTimKiem":
                        if (txtMa_VP_S.Text.Trim().ToString() != string.Empty)
                        {
                            dr["ID_VIPHAM"] = txtMa_VP_S.Text.Trim().ToString();
                        }
                        else
                        {
                            dr["ID_VIPHAM"] = -1;
                        }
                        dr["MA_DVIQLY"] = strMa_dviqly;
                        dr["TEN_DDIEN1"] = " ";
                        dr["CVU_DDIEN1"] = " ";
                        dr["TEN_DDIEN2"] = null;
                        dr["CVU_DDIEN2"] = null;
                        dr["TEN_DDIEN3"] = null;
                        dr["CVU_DDIEN3"] = " ";

                        if (txtMa_khang_S.Text.Trim().ToString() != string.Empty)
                        {
                            dr["MA_KHANG"] = txtMa_khang_S.Text.Trim().ToString();
                        }
                        else
                        {
                            dr["MA_KHANG"] = " ";
                        }
                        dr["TEN_KHANG"] = " ";
                        dr["MA_DDO"] = " ";
                        dr["DIA_CHI"] = " ";
                        dr["DDIEN_MUA"] = " ";
                        dr["CVU_MUA"] = " ";
                        dr["NGUYEN_NHAN"] = " ";
                        dr["LOAI_KHANG"] = "10";
                        dr["DCHI_TTOAN"] = strDCHI_TTOAN;
                        dr["LOAI_CTO"] = " ";
                        dr["NGAY_KDINH"] = DateTime.Now;
                        dr["CAN_CU"] = " ";
                        dr["DDIEN_MUA2"] = " ";
                        dr["CVU_MUA2"] = " ";
                        dr["HS_COSFI"] = "";
                        dr["KCOSFI"] = "";
                        dr["NGUOI_TAO"] = strTenDNHap;
                        dr["NGAY_TAO"] = DateTime.Now;
                        dr["NGUOI_SUA"] = strTenDNHap;
                        dr["NGAY_SUA"] = DateTime.Now;
                        dr["LYDO_TGIAN_BDAU"] = " ";
                        dr["CANCU_TTBQ"] = " ";
                        dr["SO_BB_KTRA"] = " ";
                        dr["NGAY_KTRA"] = DateTime.Now;

                        break;
                    case "btnThemMoi":
                        break;
                }
                dsNPC_VIPHAM_KHANG_Entity.Tables["NPC_VIPHAM_KHANG"].Rows.Add(dr);
                dsNPC_VIPHAM_KHANG_Entity.AcceptChanges();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
        }

        private void setEntity_CHISO(string strBtnClick)
        {
            try
            {
                dsNPC_VIPHAM_CHISO_Entity.Tables["NPC_VIPHAM_CHISO"].Clear();
                DataRow dr = dsNPC_VIPHAM_CHISO_Entity.Tables["NPC_VIPHAM_CHISO"].NewRow();
                switch (strBtnClick)
                {
                    case "btnGhi":
                        dr["ID_CHISO"] = ID_CHISO;
                        dr["MA_DVIQLY"] = strMa_dviqly;
                        dr["ID_VIPHAM"] = txtMa_VP.Text.ToString();
                        dr["CHISO_CU"] = CHISO_CU;
                        dr["CHISO_MOI"] = CHISO_MOI;
                        dr["SAN_LUONG"] = sanluongKy;
                        dr["NGAY_DKY"] = dtNgayDKY;
                        dr["GIO_DKY"] = 0;
                        dr["PHUT_DKY"] = 0;
                        dr["NGAY_CKY"] = dtNgayCKY;
                        dr["GIO_CKY"] = 0;
                        dr["PHUT_CKY"] = 0;
                        dr["HSN"] = hsn;
                        dr["BCS"] = strBCS;
                        dr["SO_CTO"] = " ";
                        dr["MA_CTO"] = " ";
                        dr["KY"] = Ky;
                        dr["LOAI_CHISO"] = "";
                        if (strSuaThemmoi == "THEM")
                        {
                            dr["NGUOI_TAO"] = strTenDNHap;
                            dr["NGAY_TAO"] = DateTime.Now;
                            dr["NGUOI_SUA"] = strTenDNHap;
                            dr["NGAY_SUA"] = DateTime.Now;
                        }
                        else
                        {
                            dr["NGUOI_TAO"] = strNguoiTao;
                            dr["NGAY_TAO"] = dtimeNgaytao;
                            dr["NGUOI_SUA"] = strTenDNHap;
                            dr["NGAY_SUA"] = DateTime.Now;
                        }

                        break;

                    case "btnXoa":
                        dr["ID_CHISO"] = ID_CHISO;
                        dr["MA_DVIQLY"] = strMa_dviqly;
                        dr["ID_VIPHAM"] = txtMa_VP.Text.ToString();
                        dr["CHISO_CU"] = 0;
                        dr["CHISO_MOI"] = 0;
                        dr["SAN_LUONG"] = 0;
                        dr["NGAY_DKY"] = null;
                        dr["GIO_DKY"] = 0;
                        dr["PHUT_DKY"] = 0;
                        dr["NGAY_CKY"] = null;
                        dr["GIO_CKY"] = 0;
                        dr["PHUT_CKY"] = 0;
                        dr["HSN"] = null;
                        dr["BCS"] = "KT";
                        dr["SO_CTO"] = "1";
                        dr["MA_CTO"] = "1";
                        dr["KY"] = null;
                        dr["LOAI_CHISO"] = "";
                        if (strBtnClick == "btnThemMoi")
                        {
                            dr["NGUOI_TAO"] = strTenDNHap;
                            dr["NGAY_TAO"] = DateTime.Now;
                            dr["NGUOI_SUA"] = strTenDNHap;
                            dr["NGAY_SUA"] = DateTime.Now;
                        }
                        else
                        {
                            dr["NGUOI_TAO"] = strNguoiTao;
                            dr["NGAY_TAO"] = dtimeNgaytao;
                            dr["NGUOI_SUA"] = strTenDNHap;
                            dr["NGAY_SUA"] = DateTime.Now;
                        }

                        break;
                    case "btnTimKiem":

                        break;
                    case "btnThemMoi":

                        break;
                }
                dsNPC_VIPHAM_CHISO_Entity.Tables["NPC_VIPHAM_CHISO"].Rows.Add(dr);
                dsNPC_VIPHAM_CHISO_Entity.AcceptChanges();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
        }

        private void setEntity_DDO(string strBtnClick)
        {
            try
            {
                dsNPC_VIPHAM_DDO_Entity.Tables["NPC_VIPHAM_DDO"].Clear();
                DataRow dr = dsNPC_VIPHAM_DDO_Entity.Tables["NPC_VIPHAM_DDO"].NewRow();
                switch (strBtnClick)
                {
                    case "btnGhi":
                        dr["ID_VIPHAM"] = txtMa_VP.Text.ToString();
                        dr["MA_DVIQLY"] = strMa_dviqly;
                        dr["MA_DDO"] = strMa_ddo;
                        dr["SO_CTO"] = txtSocto.Text.Trim().ToString() == string.Empty ? " " : txtSocto.Text.Trim().ToString();
                        dr["MA_CTO"] = txtMacto.Text.Trim().ToString() == string.Empty ? " " : txtMacto.Text.Trim().ToString();
                        if (ckbKhongHedd.IsChecked == true)
                        {
                            dr["MA_LDO"] = "D00";
                        }
                        else
                        {
                            if (ckbKhongcsDau.IsChecked == true)
                            {
                                dr["MA_LDO"] = "D10";
                            }
                            else
                            {
                                dr["MA_LDO"] = "D11";
                            }
                        }
                        dr["BCS"] = "AL";
                        dr["TG_CANCU"] = 0;
                        dr["TG_VIPHAM"] = SongayVP;
                        dr["SL_DODEM"] = SanluongHedd;
                        dr["SL_VIPHAM"] = SanluongVP;
                        dr["SL_SUDUNG"] = SanluongSudung;
                        dr["NGAYVIPHAM_TU"] = dtpBdVipham.SelectedDate.Value.Date;
                        dr["GIOVIPHAM_TU"] = 0;
                        dr["PHUTVIPHAM_TU"] = 0;
                        dr["NGAYVIPHAM_DEN"] = dtpKtVipham.SelectedDate.Value.Date;
                        dr["GIOVIPHAM_DEN"] = 0;
                        dr["PHUTVIPHAM_DEN"] = 0;
                        dr["TG_MDIEN"] = Convert.ToDouble(txtSogiomatdienVP.Text.Trim().ToString());
                        dr["CHUOI_GIA"] = txtGia.Text.Trim().ToString();
                        dr["THANH_TIEN"] = Thanhtien;
                        if (strSuaThemmoi == "THEM")
                        {
                            dr["NGUOI_TAO"] = strTenDNHap;
                            dr["NGAY_TAO"] = DateTime.Now;
                            dr["NGUOI_SUA"] = strTenDNHap;
                            dr["NGAY_SUA"] = DateTime.Now;
                        }
                        else
                        {
                            dr["NGUOI_TAO"] = strNguoiTao;
                            dr["NGAY_TAO"] = dtimeNgaytao;
                            dr["NGUOI_SUA"] = strTenDNHap;
                            dr["NGAY_SUA"] = DateTime.Now;
                        }

                        break;

                    case "btnXoa":
                        dr["ID_VIPHAM"] = txtMa_VP.Text.ToString();
                        dr["MA_DVIQLY"] = strMa_dviqly;
                        dr["MA_DDO"] = strMa_ddo;
                        dr["SO_CTO"] = " ";
                        dr["MA_CTO"] = " ";
                        dr["MA_LDO"] = " ";
                        dr["BCS"] = "KT";
                        dr["TG_CANCU"] = 0;
                        dr["TG_VIPHAM"] = SongayVP;
                        dr["SL_DODEM"] = SanluongHedd;
                        dr["SL_VIPHAM"] = SanluongVP;
                        dr["SL_SUDUNG"] = SanluongSudung;
                        dr["NGAYVIPHAM_TU"] = dtimeNgayBegin;
                        dr["GIOVIPHAM_TU"] = 0;
                        dr["PHUTVIPHAM_TU"] = 0;
                        dr["NGAYVIPHAM_DEN"] = dtimeNgayStop;
                        dr["GIOVIPHAM_DEN"] = 0;
                        dr["PHUTVIPHAM_DEN"] = 0;
                        dr["TG_MDIEN"] = Convert.ToDouble(txtSogiomatdienVP.Text.Trim().ToString());
                        dr["CHUOI_GIA"] = strChuoi_gia;
                        dr["THANH_TIEN"] = Thanhtien;
                        dr["NGUOI_TAO"] = strTenDNHap;
                        dr["NGAY_TAO"] = DateTime.Now;
                        dr["NGUOI_SUA"] = strTenDNHap;
                        dr["NGAY_SUA"] = DateTime.Now;




                        break;
                    case "btnTimKiem":

                        break;
                    case "btnThemMoi":

                        break;
                }
                dsNPC_VIPHAM_DDO_Entity.Tables["NPC_VIPHAM_DDO"].Rows.Add(dr);
                dsNPC_VIPHAM_DDO_Entity.AcceptChanges();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
        }

        private void setEntity_DSACHTBI(string strBtnClick)
        {
            try
            {
                dsNPC_VIPHAM_DSACHTBI_Entity.Tables["NPC_VIPHAM_DSACHTBI"].Clear();
                DataRow dr = dsNPC_VIPHAM_DSACHTBI_Entity.Tables["NPC_VIPHAM_DSACHTBI"].NewRow();
                switch (strBtnClick)
                {
                    case "btnGhi":
                        dr["MA_DVIQLY"] = strMa_dviqly;
                        dr["ID_VIPHAM"] = txtMa_VP.Text.ToString();
                        dr["ID_TBI"] = ID_TBI;
                        dr["TEN_TBI"] = strTEN_TBI;
                        dr["SO_LUONG"] = SO_LUONG;
                        dr["CONG_SUAT"] = CONG_SUAT;
                        dr["COSFI"] = COSFI;
                        dr["THOIGIAN_SDUNG"] = THOIGIAN_SDUNG;
                        dr["SO_NGAY"] = SO_NGAY;
                        dr["DNANG_SDUNG"] = DNANG_SDUNG;
                        dr["NGUOI_TAO"] = strTenDNHap;
                        dr["NGAY_TAO"] = DateTime.Now;

                        break;

                    case "btnXoa":
                        dr["MA_DVIQLY"] = strMa_dviqly;
                        dr["ID_VIPHAM"] = txtMa_VP.Text.ToString();
                        dr["ID_TBI"] = ID_TBI;
                        dr["TEN_TBI"] = strTEN_TBI;
                        dr["SO_LUONG"] = ID_TBI;
                        dr["CONG_SUAT"] = CONG_SUAT;
                        dr["COSFI"] = COSFI;
                        dr["THOIGIAN_SDUNG"] = THOIGIAN_SDUNG;
                        dr["SO_NGAY"] = 0;
                        dr["DNANG_SDUNG"] = DNANG_SDUNG;

                        break;
                    case "btnTimKiem":

                        break;
                    case "btnThemMoi":

                        break;
                }
                dsNPC_VIPHAM_DSACHTBI_Entity.Tables["NPC_VIPHAM_DSACHTBI"].Rows.Add(dr);
                dsNPC_VIPHAM_DSACHTBI_Entity.AcceptChanges();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
        }

        private bool Del_Data_Inserted(Int64 ID_VIPHAM)
        {
            try
            {
                bool checkDEL = false;

                checkDEL = GlobalServices.Service_Truythu.delete_NPC_VIPHAM_KHANG_by_IDVIPHAM(strMa_dviqly, ID_VIPHAM, ref strError);
                checkDEL = GlobalServices.Service_Truythu.delete_NPC_VIPHAM_CHISO_by_VIPHAM(strMa_dviqly, ID_VIPHAM, ref strError);
                checkDEL = GlobalServices.Service_Truythu.delete_NPC_VIPHAM_DDO_by_IDVIPHAM(strMa_dviqly, ID_VIPHAM, ref strError);
                checkDEL = GlobalServices.Service_Truythu.delete_NPC_VIPHAM_DSACHTBI_by_VIPHAM(strMa_dviqly, ID_VIPHAM, ref strError);
                return checkDEL;
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
                return false;
            }

        }

        public void Tinh_Vipham()
        {
            try
            {
                //SanluongHedd = 0;
                //SanluongSudung = 0;
                SongayVP = 0;
                giaMax = 0;
                giaMaxSH = 0;
                giaMaxkhongSH = 0;
                Thanhtien = 0;
                sogiomatdien = 0;
                strChuoi_gia = "";


                #region Tính sản lượng

                if (checkCoHedd == true)
                {
                    sogiomatdien = Convert.ToDouble(txtSogiomatdienVP.Text.Trim().ToString());
                    TimeSpan ts = dtpKtVipham.SelectedDate.Value.Date - dtpBdVipham.SelectedDate.Value.Date;
                    SongayVP = Math.Round(ts.Days + 1 - sogiomatdien / 24,2);
                    Tinh_congsuat_tieuthu();
                    if (checkTinhDsachTbi == false)
                    {
                        this.Cursor = null;
                        checkTinhVP = false;
                        //MessageBox.Show("Chưa tính được điện năng tiêu thụ !");
                        return;
                    }
                    
                    SanluongSudung = Math.Round(SanluongSudungNgay, 0);
                    SanluongHedd = Math.Round(Convert.ToDouble(txtSanluongHedd.Text.Trim()), 0);
                    SanluongVP = SanluongSudung - SanluongHedd;
                }
                else
                { // không có hệ đo đếm -> sản lượng vi phạm là sản lượng sử dụng
                    sogiomatdien = Convert.ToDouble(txtSogiomatdienVP.Text.Trim().ToString());
                    TimeSpan ts = dtpKtVipham.SelectedDate.Value.Date - dtpBdVipham.SelectedDate.Value.Date;
                    SongayVP = ts.Days + 1 - sogiomatdien / 24;
                    Tinh_congsuat_tieuthu();
                    if (checkTinhDsachTbi == false)
                    {
                        this.Cursor = null;
                        checkTinhVP = false;
                        //MessageBox.Show("Chưa tính được điện năng tiêu thụ !");
                        return;
                    }

                    SanluongSudung = Math.Round(SanluongSudungNgay, 0);
                    SanluongHedd = 0;
                    SanluongVP = SanluongSudung - SanluongHedd;
                }

                #endregion

                #region Tính tiền
                giaMax = Convert.ToDouble(txtGia.Text.Trim().ToString());

                if (giaMax > 0)
                {
                    Thanhtien = SanluongVP * giaMax;
                }
                strChuoi_gia = giaMax.ToString();

                #endregion

                checkTinhVP = true;
            }
            catch (Exception ex)
            {
                checkTinhVP = false;
                MessageBox.Show("Không tính được vi phạm !");
            }
        }

        private void btnLayDuLieu_I_Click(object sender, RoutedEventArgs e)
        {

            try
            {
                dsKH = new DataSet();
                dsBD = new DataSet();
                dsCancu = new DataSet();
                strMa_khang = "";
                strMa_ddo = "";

                if (txtMa_ddo_I.Text.Trim().ToString() != string.Empty)
                {
                    strMa_ddo = txtMa_ddo_I.Text.Trim().ToString();

                    strLoai_khang = GlobalServices.Service_Truythu.Get_loai_khang(strMa_dviqly, strMa_ddo);

                    if (strLoai_khang != "20")
                    {
                        MessageBox.Show("Điểm đo này không treo công tơ điện tử !");
                        txtMa_ddo_I.Focus();
                    }

                    dsKH = GlobalServices.Service_Truythu.Get_thongtin_khach_hang(strMa_dviqly, strMa_ddo);
                    dsBD = GlobalServices.Service_Truythu.Get_thongtin_Ban_dien(strMa_dviqly);
                    


                    // Thông tin khách hàng
                    if (dsKH != null && dsKH.Tables[0].Rows.Count > 0)
                    {
                        txtTen_khang.Text = dsKH.Tables[0].Rows[0]["TEN_KHANG"].ToString();
                        txtDia_chi.Text = dsKH.Tables[0].Rows[0]["DIA_CHI"].ToString();
                        strMa_khang = dsKH.Tables[0].Rows[0]["MA_KHANG"].ToString();
                        strDCHI_TTOAN = dsKH.Tables[0].Rows[0]["DCHI_TTOAN"].ToString();
                    }
                    else
                    {
                        MessageBox.Show("Không lấy được thông tin khách hàng !");
                        strMa_khang = "TUDO" + DateTime.Now.Hour.ToString() + DateTime.Now.Minute.ToString() + DateTime.Now.Second.ToString();
                    }

                    // Thông tin bên bán điện
                    if (dsBD != null && dsBD.Tables[0].Rows.Count > 0)
                    {
                        txtHoten1.Text = dsBD.Tables[0].Rows[0]["DAI_DIEN"].ToString();
                        txtChucvu1.Text = dsBD.Tables[0].Rows[0]["CHUC_VU"].ToString();
                    }
                    else
                    {
                        MessageBox.Show("Không lấy được thông tin đại diện bên bán điện !");
                    }
                    //Enable_Items(true);
                                        
                }
                else
                {
                    MessageBox.Show("Hãy nhập mã điểm đo !");
                    txtMa_ddo_I.Focus();
                }

            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }

        }

        private void btnThemMoi_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                //Del_cache();

                this.Cursor = null;
                strBtnClick = "btnThemMoi";
                strSuaThemmoi = "THEM";

                btnThemMoi.IsEnabled = false;
                btnSua.IsEnabled = false;
                btnHuy.IsEnabled = true;
                btnGhi.IsEnabled = true;
                btnIn.IsEnabled = false;
                btnXoa.IsEnabled = false;
                btnLayCancu.IsEnabled = true;

                txtMa_ddo_I.IsEnabled = true;
                txtMa_ddo_I.IsReadOnly = false;
                btnLayDuLieu_I.IsEnabled = true;
                tabTruythu.IsSelected = true;

                ckbKhongHedd.IsChecked = false;
                ckbKhongcsDau.IsChecked = false;

                checkCoCSdau = true;
                checkCoHedd = true;
                checkLayCancu = false;
                checkTinhVP = false;
                checkTinhDsachTbi = false;

                Items_text(string.Empty);
                Enable_Items(true);
                dtpBdVipham.SelectedDate = DateTime.Now.AddYears(-1);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
        }

        private void btnGhi_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                this.Cursor = Cursors.Wait;

                // ========= Kiem tra du lieu nhap moi ========
                while (check_Input_Items() == false)
                {
                    this.Cursor = null;
                    return;
                }


                // kiem tra lay can cu khi co he do dem
                if (strBtnClick == "btnThemMoi")
                {
                    if (checkCoHedd == true)
                    {
                        if (checkLayCancu == false)
                        {
                            this.Cursor = null;
                            MessageBox.Show("Chưa có dữ liệu căn cứ !");
                            return;
                        }
                    }
                }

                // tính lại công suất tiêu thụ theo bảng kê công suất
                //Tinh_congsuat_tieuthu();
                //if (checkTinhDsachTbi == false)
                //{
                //    this.Cursor = null;
                //    MessageBox.Show("Chưa tính được điện năng tiêu thụ !");
                //    return;
                //}

                Tinh_Vipham();
                if (checkTinhVP == false) // không tính được vi phạm -> stop
                {
                    this.Cursor = null;
                    return;
                }

                if (checkCoHedd == true) // có hệ đo đếm -> 
                {
                    if (checkCoCSdau == true)
                    {
                        CHISO_BGBT = Convert.ToDouble(txtChisodungBT.Text.Trim().ToString());
                        CHISO_BGCD = Convert.ToDouble(txtChisodungCD.Text.Trim().ToString());
                        CHISO_BGTD = Convert.ToDouble(txtChisodungTD.Text.Trim().ToString());
                    }
                    else
                    {
                        CHISO_BGBT = 0;
                        CHISO_BGCD = 0;
                        CHISO_BGTD = 0;
                    }

                    CHISO_ENDBT = Convert.ToDouble(txtChisoVPBT.Text.Trim().Trim());
                    CHISO_ENDCD = Convert.ToDouble(txtChisoVPCD.Text.Trim().Trim());
                    CHISO_ENDTD = Convert.ToDouble(txtChisoVPTD.Text.Trim().Trim());
                }
                else
                {
                    CHISO_BGBT = 0;
                    CHISO_BGCD = 0;
                    CHISO_BGTD = 0;

                    CHISO_ENDBT = 0;
                    CHISO_ENDCD = 0;
                    CHISO_ENDTD = 0;
                }

                /// ======= Thêm mới -> lấy nextSeq ======
                if (strBtnClick == "btnThemMoi")
                {
                    long MaxID = 0;
                    long nextSeqTRTH = 0;

                    if ((txtMa_VP.Text.Trim().ToString() == string.Empty) || (txtMa_VP.Text.Trim().ToString() == "-1"))
                    {
                        //nextSeqTRTH = GlobalServices.Service_Truythu.GetNextSEQ_NPC_VIPHAM(ref strError);
                        MaxID = GlobalServices.Service_Truythu.GetMaxID(strMa_dviqly, "VIPHAM", ref strError);
                        if (MaxID == -1)
                        {
                            this.Cursor = null;
                            MessageBox.Show("Seq Truy thu: -1 không ghi được dữ liệu");
                            return;
                        }
                        #region ======== ghi dòng NPC_LOG_ID mới =========
                        checkInsert = GlobalServices.Service_Truythu.insert_NPC_LOG_ID(strMa_dviqly, MaxID + 1, "VIPHAM", strTenDNHap, DateTime.Now, ref strError);
                        if (checkInsert == false)
                        {
                            MessageBox.Show("Không ghi được dữ liệu LOG_ID" + "\n" + strError);
                            return;
                        }
                        #endregion

                        nextSeqTRTH = MaxID + 1;

                        txtMa_VP.Text = nextSeqTRTH.ToString();
                    }
                }

                // dữ liệu khách hàng NPC_TRTH_KHANG
                setEntity_KH("btnGhi");

                // ============== Ghi dữ liệu Thêm mới ===============

                if (strBtnClick == "btnThemMoi")
                {
                    checkInsert = GlobalServices.Service_Truythu.insert_NPC_VIPHAM_KHANG(dsNPC_VIPHAM_KHANG_Entity, ref strError);
                    if (checkInsert == false)
                    {
                        Del_Data_Inserted(Convert.ToInt64(txtMa_VP.Text));
                        this.Cursor = null;
                        MessageBox.Show(strError);
                        return;
                    }

                    #region ghi NPC_VIPHAM_CHISO
                    // ghi chi so ky 1 BT - ky dau 
                    strBCS = "BT";
                    nextSEQChiso = GlobalServices.Service_Truythu.GetNextSEQ_NPC_VIPHAM_CHISO(ref strError);
                    ID_CHISO = nextSEQChiso;
                    Id_chisoKy1BT = nextSEQChiso;
                    dtNgayDKY = dtpBdVipham.SelectedDate.Value.Date;
                    dtNgayCKY = dtimeNgayCSKYb;
                    sanluongKy = sanluongKy1BT;
                    hsn = hsnBG;
                    Ky = Ky1;                    
                    CHISO_CU = CHISO_BGBT;
                    CHISO_MOI = CHISO_KYbBT;

                    setEntity_CHISO("btnGhi");
                    checkInsert = GlobalServices.Service_Truythu.insert_NPC_VIPHAM_CHISO(dsNPC_VIPHAM_CHISO_Entity, ref strError);
                    if (checkInsert == false)
                    {
                        Del_Data_Inserted(Convert.ToInt64(txtMa_VP.Text));
                        this.Cursor = null;
                        MessageBox.Show(strError);
                        return;
                    }

                    // ghi chi so ky 1 CD - ky dau 
                    strBCS = "CD";
                    nextSEQChiso = GlobalServices.Service_Truythu.GetNextSEQ_NPC_VIPHAM_CHISO(ref strError);
                    ID_CHISO = nextSEQChiso;
                    Id_chisoKy1CD = nextSEQChiso;
                    dtNgayDKY = dtpBdVipham.SelectedDate.Value.Date;
                    dtNgayCKY = dtimeNgayCSKYb;
                    sanluongKy = sanluongKy1CD;
                    hsn = hsnBG;
                    Ky = Ky1;
                    CHISO_CU = CHISO_BGCD;
                    CHISO_MOI = CHISO_KYbCD;

                    setEntity_CHISO("btnGhi");
                    checkInsert = GlobalServices.Service_Truythu.insert_NPC_VIPHAM_CHISO(dsNPC_VIPHAM_CHISO_Entity, ref strError);
                    if (checkInsert == false)
                    {
                        Del_Data_Inserted(Convert.ToInt64(txtMa_VP.Text));
                        this.Cursor = null;
                        MessageBox.Show(strError);
                        return;
                    }

                    // ghi chi so ky 1 TD - ky dau 
                    strBCS = "TD";
                    nextSEQChiso = GlobalServices.Service_Truythu.GetNextSEQ_NPC_VIPHAM_CHISO(ref strError);
                    ID_CHISO = nextSEQChiso;
                    Id_chisoKy1TD = nextSEQChiso;
                    dtNgayDKY = dtpBdVipham.SelectedDate.Value.Date;
                    dtNgayCKY = dtimeNgayCSKYb;
                    sanluongKy = sanluongKy1TD;
                    hsn = hsnBG;
                    Ky = Ky1;
                    CHISO_CU = CHISO_BGTD;
                    CHISO_MOI = CHISO_KYbTD;

                    setEntity_CHISO("btnGhi");
                    checkInsert = GlobalServices.Service_Truythu.insert_NPC_VIPHAM_CHISO(dsNPC_VIPHAM_CHISO_Entity, ref strError);
                    if (checkInsert == false)
                    {
                        Del_Data_Inserted(Convert.ToInt64(txtMa_VP.Text));
                        this.Cursor = null;
                        MessageBox.Show(strError);
                        return;
                    }

                    // ghi chi so ky 2 BT - ky giua - cong tong san luong cac kỳ giữa tròn kỳ
                    strBCS = "BT";
                    nextSEQChiso = GlobalServices.Service_Truythu.GetNextSEQ_NPC_VIPHAM_CHISO(ref strError);
                    ID_CHISO = nextSEQChiso;
                    Id_chisoKy2BT = nextSEQChiso;
                    dtNgayDKY = dtimeNgayCSKYb;
                    dtNgayCKY = dtimeNgayCSKYe;
                    sanluongKy = sanluongKy2BT;
                    hsn = 0;
                    Ky = Ky2;
                    CHISO_CU = 0;
                    CHISO_MOI = 0;

                    setEntity_CHISO("btnGhi");
                    checkInsert = GlobalServices.Service_Truythu.insert_NPC_VIPHAM_CHISO(dsNPC_VIPHAM_CHISO_Entity, ref strError);
                    if (checkInsert == false)
                    {
                        Del_Data_Inserted(Convert.ToInt64(txtMa_VP.Text));
                        this.Cursor = null;
                        MessageBox.Show(strError);
                        return;
                    }

                    // ghi chi so ky 2 CD - ky giua - cong tong san luong cac kỳ giữa tròn kỳ
                    strBCS = "CD";
                    nextSEQChiso = GlobalServices.Service_Truythu.GetNextSEQ_NPC_VIPHAM_CHISO(ref strError);
                    ID_CHISO = nextSEQChiso;
                    Id_chisoKy2CD = nextSEQChiso;
                    dtNgayDKY = dtimeNgayCSKYb;
                    dtNgayCKY = dtimeNgayCSKYe;
                    sanluongKy = sanluongKy2CD;
                    hsn = 0;
                    Ky = Ky2;
                    CHISO_CU = 0;
                    CHISO_MOI = 0;

                    setEntity_CHISO("btnGhi");
                    checkInsert = GlobalServices.Service_Truythu.insert_NPC_VIPHAM_CHISO(dsNPC_VIPHAM_CHISO_Entity, ref strError);
                    if (checkInsert == false)
                    {
                        Del_Data_Inserted(Convert.ToInt64(txtMa_VP.Text));
                        this.Cursor = null;
                        MessageBox.Show(strError);
                        return;
                    }

                    // ghi chi so ky 2 TD - ky giua - cong tong san luong cac kỳ giữa tròn kỳ
                    strBCS = "TD";
                    nextSEQChiso = GlobalServices.Service_Truythu.GetNextSEQ_NPC_VIPHAM_CHISO(ref strError);
                    ID_CHISO = nextSEQChiso;
                    Id_chisoKy2TD = nextSEQChiso;
                    dtNgayDKY = dtimeNgayCSKYb;
                    dtNgayCKY = dtimeNgayCSKYe;
                    sanluongKy = sanluongKy2TD;
                    hsn = 0;
                    Ky = Ky2;
                    CHISO_CU = 0;
                    CHISO_MOI = 0;

                    setEntity_CHISO("btnGhi");
                    checkInsert = GlobalServices.Service_Truythu.insert_NPC_VIPHAM_CHISO(dsNPC_VIPHAM_CHISO_Entity, ref strError);
                    if (checkInsert == false)
                    {
                        Del_Data_Inserted(Convert.ToInt64(txtMa_VP.Text));
                        this.Cursor = null;
                        MessageBox.Show(strError);
                        return;
                    }                    

                    // ghi chi so ky 3 BT - ky cuoi - cong tong san luong cac kỳ giữa tròn kỳ
                    strBCS = "BT";
                    nextSEQChiso = GlobalServices.Service_Truythu.GetNextSEQ_NPC_VIPHAM_CHISO(ref strError);
                    ID_CHISO = nextSEQChiso;
                    Id_chisoKy3BT = nextSEQChiso;
                    dtNgayDKY = dtimeNgayCSKYe;
                    dtNgayCKY = dtpKtVipham.SelectedDate.Value.Date;
                    sanluongKy = sanluongKy3BT;
                    hsn = hsnEND;
                    Ky = Ky3;
                    CHISO_CU = CHISO_KYeBT;
                    CHISO_MOI = CHISO_ENDBT;

                    setEntity_CHISO("btnGhi");
                    checkInsert = GlobalServices.Service_Truythu.insert_NPC_VIPHAM_CHISO(dsNPC_VIPHAM_CHISO_Entity, ref strError);
                    if (checkInsert == false)
                    {
                        Del_Data_Inserted(Convert.ToInt64(txtMa_VP.Text));
                        this.Cursor = null;
                        MessageBox.Show(strError);
                        return;
                    }

                    // ghi chi so ky 3 CD - ky cuoi - cong tong san luong cac kỳ giữa tròn kỳ
                    strBCS = "CD";
                    nextSEQChiso = GlobalServices.Service_Truythu.GetNextSEQ_NPC_VIPHAM_CHISO(ref strError);
                    ID_CHISO = nextSEQChiso;
                    Id_chisoKy3CD = nextSEQChiso;
                    dtNgayDKY = dtimeNgayCSKYe;
                    dtNgayCKY = dtpKtVipham.SelectedDate.Value.Date;
                    sanluongKy = sanluongKy3CD;
                    hsn = hsnEND;
                    Ky = Ky3;
                    CHISO_CU = CHISO_KYeCD;
                    CHISO_MOI = CHISO_ENDCD;

                    setEntity_CHISO("btnGhi");
                    checkInsert = GlobalServices.Service_Truythu.insert_NPC_VIPHAM_CHISO(dsNPC_VIPHAM_CHISO_Entity, ref strError);
                    if (checkInsert == false)
                    {
                        Del_Data_Inserted(Convert.ToInt64(txtMa_VP.Text));
                        this.Cursor = null;
                        MessageBox.Show(strError);
                        return;
                    }

                    // ghi chi so ky 3 TD - ky cuoi - cong tong san luong cac kỳ giữa tròn kỳ
                    strBCS = "TD";
                    nextSEQChiso = GlobalServices.Service_Truythu.GetNextSEQ_NPC_VIPHAM_CHISO(ref strError);
                    ID_CHISO = nextSEQChiso;
                    Id_chisoKy3TD = nextSEQChiso;
                    dtNgayDKY = dtimeNgayCSKYe;
                    dtNgayCKY = dtpKtVipham.SelectedDate.Value.Date;
                    sanluongKy = sanluongKy3TD;
                    hsn = hsnEND;
                    Ky = Ky3;
                    CHISO_CU = CHISO_KYeTD;
                    CHISO_MOI = CHISO_ENDTD;

                    setEntity_CHISO("btnGhi");
                    checkInsert = GlobalServices.Service_Truythu.insert_NPC_VIPHAM_CHISO(dsNPC_VIPHAM_CHISO_Entity, ref strError);
                    if (checkInsert == false)
                    {
                        Del_Data_Inserted(Convert.ToInt64(txtMa_VP.Text));
                        this.Cursor = null;
                        MessageBox.Show(strError);
                        return;
                    }

                    #endregion

                    #region ghi NPC_VIPHAM_DDO

                    setEntity_DDO("btnGhi");
                    checkInsert = GlobalServices.Service_Truythu.insert_NPC_VIPHAM_DDO(dsNPC_VIPHAM_DDO_Entity, ref strError);
                    if (checkInsert == false)
                    {
                        Del_Data_Inserted(Convert.ToInt64(txtMa_VP.Text));
                        this.Cursor = null;
                        MessageBox.Show(strError);
                        return;
                    }

                    #endregion

                    #region ghi NPC_VIPHAM_DSACHTBI

                    for (int i = 0; i < dt.Rows.Count; i++)
                    {
                        ID_TBI = GlobalServices.Service_Truythu.GetNextSEQ_NPC_VIPHAM_DSACHTBI(ref strError);
                        strTEN_TBI = dt.Rows[i]["TEN_TBI"].ToString();
                        SO_LUONG = Convert.ToInt64(dt.Rows[i]["SO_LUONG"]);
                        CONG_SUAT = Convert.ToDouble(dt.Rows[i]["CONG_SUAT"]);
                        COSFI = Convert.ToDouble(dt.Rows[i]["COSFI"]);
                        THOIGIAN_SDUNG = Convert.ToDouble(dt.Rows[i]["THOIGIAN_SDUNG"]);
                        SO_NGAY = Convert.ToDouble(dt.Rows[i]["SO_NGAY"]);
                        DNANG_SDUNG = Convert.ToDouble(dt.Rows[i]["DNANG_SDUNG"]);

                        setEntity_DSACHTBI("btnGhi");
                        checkInsert = GlobalServices.Service_Truythu.insert_NPC_VIPHAM_DSACHTBI(dsNPC_VIPHAM_DSACHTBI_Entity, ref strError);
                        if (checkInsert == false)
                        {
                            Del_Data_Inserted(Convert.ToInt64(txtMa_VP.Text));
                            this.Cursor = null;
                            MessageBox.Show(strError);
                            return;
                        }
                    }

                    #endregion

                    if (checkInsert == true)
                    {
                        MessageBox.Show("Ghi dữ liệu thành công !");
                        this.Cursor = null;
                    }
                    else
                    {
                        MessageBox.Show("Không ghi được dữ liệu !" + "\n" + strError);
                        this.Cursor = null;
                        return;
                    }
                }
                else  // ghi SUA
                {
                    #region NPC_VIPHAM_KHANG
                    setEntity_KH("btnGhi");
                    checkInsert = GlobalServices.Service_Truythu.update_NPC_VIPHAM_KHANG(dsNPC_VIPHAM_KHANG_Entity, ref strError);
                    if (checkInsert == false)
                    {
                        this.Cursor = null;
                        MessageBox.Show(strError);
                        return;
                    }
                    #endregion

                    #region NPC_VIPHAM_CHISO
                    // ghi chi so ky 1 BT - ky dau     
                    strBCS = "BT";
                    ID_CHISO = Id_chisoKy1BT;
                    dtNgayDKY = dtpBdVipham.SelectedDate.Value.Date;
                    dtNgayCKY = dtimeNgayCSKYb;
                    sanluongKy = sanluongKy1BT;
                    hsn = hsnBG;
                    Ky = Ky1;
                    CHISO_CU = CHISO_BGBT;
                    CHISO_MOI = CHISO_KYbBT;

                    setEntity_CHISO("btnGhi");
                    checkInsert = GlobalServices.Service_Truythu.update_NPC_VIPHAM_CHISO(dsNPC_VIPHAM_CHISO_Entity, ref strError);
                    if (checkInsert == false)
                    {
                        this.Cursor = null;
                        MessageBox.Show(strError);
                        return;
                    }

                    // ghi chi so ky 1 CD - ky dau    
                    strBCS = "CD";
                    ID_CHISO = Id_chisoKy1CD;
                    dtNgayDKY = dtpBdVipham.SelectedDate.Value.Date;
                    dtNgayCKY = dtimeNgayCSKYb;
                    sanluongKy = sanluongKy1CD;
                    hsn = hsnBG;
                    Ky = Ky1;
                    CHISO_CU = CHISO_BGCD;
                    CHISO_MOI = CHISO_KYbCD;

                    setEntity_CHISO("btnGhi");
                    checkInsert = GlobalServices.Service_Truythu.update_NPC_VIPHAM_CHISO(dsNPC_VIPHAM_CHISO_Entity, ref strError);
                    if (checkInsert == false)
                    {
                        this.Cursor = null;
                        MessageBox.Show(strError);
                        return;
                    }

                    // ghi chi so ky 1 TD - ky dau        
                    strBCS = "TD";
                    ID_CHISO = Id_chisoKy1TD;
                    dtNgayDKY = dtpBdVipham.SelectedDate.Value.Date;
                    dtNgayCKY = dtimeNgayCSKYb;
                    sanluongKy = sanluongKy1TD;
                    hsn = hsnBG;
                    Ky = Ky1;
                    CHISO_CU = CHISO_BGTD;
                    CHISO_MOI = CHISO_KYbTD;

                    setEntity_CHISO("btnGhi");
                    checkInsert = GlobalServices.Service_Truythu.update_NPC_VIPHAM_CHISO(dsNPC_VIPHAM_CHISO_Entity, ref strError);
                    if (checkInsert == false)
                    {
                        this.Cursor = null;
                        MessageBox.Show(strError);
                        return;
                    }

                    // ghi chi so ky 2 BT - ky giua - cong tong san luong cac kỳ giữa tròn kỳ  
                    strBCS = "BT";
                    ID_CHISO = Id_chisoKy2BT;
                    dtNgayDKY = dtimeNgayCSKYb;
                    dtNgayCKY = dtimeNgayCSKYe;
                    sanluongKy = sanluongKy2BT;
                    hsn = 0;
                    Ky = Ky2;
                    CHISO_CU = 0;
                    CHISO_MOI = 0;

                    setEntity_CHISO("btnGhi");
                    checkInsert = GlobalServices.Service_Truythu.update_NPC_VIPHAM_CHISO(dsNPC_VIPHAM_CHISO_Entity, ref strError);
                    if (checkInsert == false)
                    {
                        this.Cursor = null;
                        MessageBox.Show(strError);
                        return;
                    }

                    // ghi chi so ky 2 CD - ky giua - cong tong san luong cac kỳ giữa tròn kỳ    
                    strBCS = "CD";
                    ID_CHISO = Id_chisoKy2CD;
                    dtNgayDKY = dtimeNgayCSKYb;
                    dtNgayCKY = dtimeNgayCSKYe;
                    sanluongKy = sanluongKy2CD;
                    hsn = 0;
                    Ky = Ky2;
                    CHISO_CU = 0;
                    CHISO_MOI = 0;

                    setEntity_CHISO("btnGhi");
                    checkInsert = GlobalServices.Service_Truythu.update_NPC_VIPHAM_CHISO(dsNPC_VIPHAM_CHISO_Entity, ref strError);
                    if (checkInsert == false)
                    {
                        this.Cursor = null;
                        MessageBox.Show(strError);
                        return;
                    }

                    // ghi chi so ky 2 TD - ky giua - cong tong san luong cac kỳ giữa tròn kỳ     
                    strBCS = "TD";
                    ID_CHISO = Id_chisoKy2TD;
                    dtNgayDKY = dtimeNgayCSKYb;
                    dtNgayCKY = dtimeNgayCSKYe;
                    sanluongKy = sanluongKy2TD;
                    hsn = 0;
                    Ky = Ky2;
                    CHISO_CU = 0;
                    CHISO_MOI = 0;

                    setEntity_CHISO("btnGhi");
                    checkInsert = GlobalServices.Service_Truythu.update_NPC_VIPHAM_CHISO(dsNPC_VIPHAM_CHISO_Entity, ref strError);
                    if (checkInsert == false)
                    {
                        this.Cursor = null;
                        MessageBox.Show(strError);
                        return;
                    }

                    // ghi chi so ky 3 BT - ky cuoi - cong tong san luong cac kỳ giữa tròn kỳ      
                    strBCS = "BT";
                    ID_CHISO = Id_chisoKy3BT;
                    dtNgayDKY = dtimeNgayCSKYe;
                    dtNgayCKY = dtpKtVipham.SelectedDate.Value.Date;
                    sanluongKy = sanluongKy3BT;
                    hsn = hsnEND;
                    Ky = Ky3;
                    CHISO_CU = CHISO_KYeBT;
                    CHISO_MOI = CHISO_ENDBT;

                    setEntity_CHISO("btnGhi");
                    checkInsert = GlobalServices.Service_Truythu.update_NPC_VIPHAM_CHISO(dsNPC_VIPHAM_CHISO_Entity, ref strError);
                    if (checkInsert == false)
                    {
                        this.Cursor = null;
                        MessageBox.Show(strError);
                        return;
                    }

                    // ghi chi so ky 3 CD - ky cuoi - cong tong san luong cac kỳ giữa tròn kỳ    
                    strBCS = "CD";
                    ID_CHISO = Id_chisoKy3CD;
                    dtNgayDKY = dtimeNgayCSKYe;
                    dtNgayCKY = dtpKtVipham.SelectedDate.Value.Date;
                    sanluongKy = sanluongKy3CD;
                    hsn = hsnEND;
                    Ky = Ky3;
                    CHISO_CU = CHISO_KYeCD;
                    CHISO_MOI = CHISO_ENDCD;

                    setEntity_CHISO("btnGhi");
                    checkInsert = GlobalServices.Service_Truythu.update_NPC_VIPHAM_CHISO(dsNPC_VIPHAM_CHISO_Entity, ref strError);
                    if (checkInsert == false)
                    {
                        this.Cursor = null;
                        MessageBox.Show(strError);
                        return;
                    }

                    // ghi chi so ky 3 TD - ky cuoi - cong tong san luong cac kỳ giữa tròn kỳ    
                    strBCS = "TD";
                    ID_CHISO = Id_chisoKy3TD;
                    dtNgayDKY = dtimeNgayCSKYe;
                    dtNgayCKY = dtpKtVipham.SelectedDate.Value.Date;
                    sanluongKy = sanluongKy3TD;
                    hsn = hsnEND;
                    Ky = Ky3;
                    CHISO_CU = CHISO_KYeTD;
                    CHISO_MOI = CHISO_ENDTD;

                    setEntity_CHISO("btnGhi");
                    checkInsert = GlobalServices.Service_Truythu.update_NPC_VIPHAM_CHISO(dsNPC_VIPHAM_CHISO_Entity, ref strError);
                    if (checkInsert == false)
                    {
                        this.Cursor = null;
                        MessageBox.Show(strError);
                        return;
                    }
                    #endregion

                    #region NPC_VIPHAM_DDO
                    setEntity_DDO("btnGhi");
                    checkInsert = GlobalServices.Service_Truythu.update_NPC_VIPHAM_DDO(dsNPC_VIPHAM_DDO_Entity, ref strError);
                    if (checkInsert == false)
                    {
                        this.Cursor = null;
                        MessageBox.Show(strError);
                        return;
                    }
                    #endregion

                    #region NPC_VIPHAM_DSACHTBI
                    checkInsert = GlobalServices.Service_Truythu.delete_NPC_VIPHAM_DSACHTBI_by_VIPHAM(strMa_dviqly, Convert.ToInt64(txtMa_VP.Text), ref strError);
                    if (checkInsert == true)
                    {
                        for (int i = 0; i < dt.Rows.Count; i++)
                        {
                            ID_TBI = GlobalServices.Service_Truythu.GetNextSEQ_NPC_VIPHAM_DSACHTBI(ref strError);
                            strTEN_TBI = dt.Rows[i]["TEN_TBI"].ToString();
                            SO_LUONG = Convert.ToInt64(dt.Rows[i]["SO_LUONG"]);
                            CONG_SUAT = Convert.ToDouble(dt.Rows[i]["CONG_SUAT"]);
                            COSFI = Convert.ToDouble(dt.Rows[i]["COSFI"]);
                            THOIGIAN_SDUNG = Convert.ToDouble(dt.Rows[i]["THOIGIAN_SDUNG"]);
                            SO_NGAY = Convert.ToDouble(dt.Rows[i]["SO_NGAY"]);
                            DNANG_SDUNG = Convert.ToDouble(dt.Rows[i]["DNANG_SDUNG"]);

                            setEntity_DSACHTBI("btnGhi");
                            checkInsert = GlobalServices.Service_Truythu.insert_NPC_VIPHAM_DSACHTBI(dsNPC_VIPHAM_DSACHTBI_Entity, ref strError);
                            if (checkInsert == false)
                            {
                                Del_Data_Inserted(Convert.ToInt64(txtMa_VP.Text));
                                this.Cursor = null;
                                MessageBox.Show(strError);
                                return;
                            }
                        }
                    }
                    #endregion

                    if (checkInsert == true)
                    {
                        MessageBox.Show("Ghi dữ liệu thành công !");
                        this.Cursor = null;
                    }
                    else
                    {
                        MessageBox.Show("Không ghi được dữ liệu !" + "\n" + strError);
                        this.Cursor = null;
                        return;
                    }
                }

                this.Cursor = null;
                btnThemMoi.IsEnabled = true;
                btnSua.IsEnabled = true;
                btnHuy.IsEnabled = false;
                btnGhi.IsEnabled = false;
                btnIn.IsEnabled = true;
                btnLayDuLieu_I.IsEnabled = false;
                btnXoa.IsEnabled = true;

                Enable_Items(false);
                strBtnClick = "";
                strSuaThemmoi = "";
            }
            catch (Exception ex)
            {
                this.Cursor = null;
                MessageBox.Show(ex.ToString());
            }
        }

        private void btnSua_Click(object sender, RoutedEventArgs e)
        {
            try
            {

                strBtnClick = "SUA";
                strSuaThemmoi = "SUA";

                btnThemMoi.IsEnabled = false;
                btnSua.IsEnabled = false;
                btnHuy.IsEnabled = true;
                btnGhi.IsEnabled = true;
                btnIn.IsEnabled = false;
                btnXoa.IsEnabled = false;
                btnLayCancu.IsEnabled = false;
                btnLayDuLieu_I.IsEnabled = false;
                txtMa_ddo_I.IsReadOnly = true;

                Enable_Items(true);

                //if (ckbKhongdoc.IsChecked == true)
                //{
                //    txtChisothao.IsEnabled = false;
                //}
                //else
                //{
                //    txtChisothao.IsEnabled = true;
                //}

                //if (ckbTutinh.IsChecked == true)
                //{
                //    tabTutinh.IsEnabled = true;
                //    tabsluongCancu.IsEnabled = false;
                //}
                //else
                //{
                //    tabTutinh.IsEnabled = false;
                //    tabsluongCancu.IsEnabled = true;
                //}

                //Enable_Items(true);
                //Enable_KyCancu(true, countKy);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
        }

        private void btnHuy_Click(object sender, RoutedEventArgs e)
        {
            try
            {

                this.Cursor = null;
                btnThemMoi.IsEnabled = true;
                btnSua.IsEnabled = false;
                btnHuy.IsEnabled = false;
                btnGhi.IsEnabled = false;
                btnIn.IsEnabled = false;
                btnLayDuLieu_I.IsEnabled = false;
                btnLayCancu.IsEnabled = false;
                ckbKhongHedd.IsChecked = false;
                checkCoHedd = true;
                lblDientt.Content = "";

                strBtnClick = "";
                strSuaThemmoi = "";

                Enable_Items(false);
                Items_text(string.Empty);
                CheckIsEnableButtonSuaXoa();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
        }

        private void btnXoa_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                this.Cursor = null;

                bool bolCheckDelete = false;
                strBtnClick = "XOA";
                if (MessageBox.Show("Bạn có chắc chắn xoá bản ghi có mã " + txtMa_VP.Text.Trim() + "-" + txtMa_ddo_I.Text.Trim() + " không?", "Thông báo", MessageBoxButton.YesNo) == MessageBoxResult.Yes)
                {
                    //setEntity_CHISO("btnXoa");
                    //setEntity_DDO("btnXoa");
                    //setEntity_KH("btnXoa");
                    intDongFocus = dgrDSach_Vipham.SelectedIndex;
                    Int64 id = 0;
                    id = Convert.ToInt64(txtMa_VP.Text.Trim());


                    bolCheckDelete = GlobalServices.Service_Truythu.delete_NPC_VIPHAM_DSACHTBI_by_VIPHAM(strMa_dviqly, id, ref strError);
                    if (bolCheckDelete == true)
                    {
                        bolCheckDelete = GlobalServices.Service_Truythu.delete_NPC_VIPHAM_CHISO_by_VIPHAM(strMa_dviqly, id, ref strError);
                    }
                    else
                    {
                        this.Cursor = null;
                        MessageBox.Show("Không xóa được danh sách thiết bị !" + "\n" + strError.ToString());
                        return;
                    }

                    if (bolCheckDelete == true)
                    {
                        bolCheckDelete = GlobalServices.Service_Truythu.delete_NPC_VIPHAM_DDO_by_IDVIPHAM(strMa_dviqly, id, ref strError);

                        if (bolCheckDelete == true)
                        {
                            bolCheckDelete = GlobalServices.Service_Truythu.delete_NPC_VIPHAM_KHANG_by_IDVIPHAM(strMa_dviqly, id, ref strError);
                        }
                        else
                        {
                            this.Cursor = null;
                            MessageBox.Show("Không xóa được dữ liệu điểm đo !");
                            return;
                        }

                        if (bolCheckDelete == true)
                        {
                            this.Cursor = null;
                            DataRow[] Arrdr = dtHienthi.Select("ID_VIPHAM =" + txtMa_VP.Text.Trim().ToString());
                            if (Arrdr.Count() > 0)
                            {
                                dtHienthi.Rows.Remove(Arrdr[0]);
                                dtHienthi.AcceptChanges();
                                MessageBox.Show("Xoá dữ liệu thành công!", "Thông báo", MessageBoxButton.OK);
                            }

                            //DataRowView drv = dgrDSach_Vipham.SelectedItem as DataRowView;
                            //if (drv != null)
                            //{
                            //    drv.Delete();
                            //    //dtHienthi.AcceptChanges();
                            //    MessageBox.Show("Xoá dữ liệu thành công!", "Thông báo", MessageBoxButton.OK);
                            //}
                            Items_text(string.Empty);

                        }
                        else
                        {
                            this.Cursor = null;
                            if (strError.Contains("ORA-02292") == true)
                            {
                                MessageBox.Show("Mã truy thu " + txtMa_VP.Text + " đang được sử dụng. Không thể xoá bản ghi này.", "Thông báo", MessageBoxButton.OK);
                            }
                        }

                    }
                    else
                    {
                        this.Cursor = null;
                        MessageBox.Show("Không xóa được dữ liệu chỉ số !");
                        return;
                    }
                }
                CheckIsEnableButtonSuaXoa();
                strBtnClick = "";
                if (dgrDSach_Vipham.Items.Count > intDongFocus)
                {
                    dgrDSach_Vipham.SelectedIndex = intDongFocus;
                }
                else dgrDSach_Vipham.SelectedIndex = intDongFocus - 1;
                btnXoa.Focus();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
        }

        private void btnIn_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                intID_VIPHAM = Convert.ToInt64(txtMa_VP.Text);

                DataSet dsKHANG = GlobalServices.Service_Truythu.select_NPC_VIPHAM_KHANG_by_id_truythu(strMa_dviqly, intID_VIPHAM);

                DataSet dsCHI_SO = GlobalServices.Service_Truythu.select_NPC_VIPHAM_CHISO_by_id_truythu(strMa_dviqly, intID_VIPHAM);

                DataSet dsDDO = GlobalServices.Service_Truythu.select_NPC_VIPHAM_DDO_by_id_truythu(strMa_dviqly, intID_VIPHAM);

                DataSet dsDSTB = GlobalServices.Service_Truythu.select_NPC_VIPHAM_DSACHTBI_by_id_vipham(strMa_dviqly, intID_VIPHAM);

                DataTable dtkhang = new DataTable();
                DataTable dtchiso = new DataTable();
                DataTable dtddo = new DataTable();
                DataTable dtdstb = new DataTable();

                dtkhang = dsKHANG.Tables[0].Copy();
                if (dsCHI_SO != null && dsCHI_SO.Tables[0].Rows.Count > 0)
                {
                    dtchiso = dsCHI_SO.Tables[0].Copy();
                }
                dtddo = dsDDO.Tables[0].Copy();
                if (dsDSTB != null && dsDSTB.Tables[0].Rows.Count > 0)
                {
                    dtdstb = dsDSTB.Tables[0].Copy();
                }
                else
                {
                    dgrDSach_Thietbi.ItemsSource = null;
                }

                #region Mẫu biên bản mới BAN16
                rpt_NPC_VIPHAM_B16 rptCO = new rpt_NPC_VIPHAM_B16();
                rpt_NPC_VIPHAM_TUTINH rptTT = new rpt_NPC_VIPHAM_TUTINH();

                string strID = "";
                string strYear = "";
                string strIDBB = "";

                strID = dtkhang.Rows[0]["ID_VIPHAM"].ToString();
                strYear = Convert.ToDateTime(dtddo.Rows[0]["NGAYVIPHAM_DEN"]).ToString("yyyy");
                strIDBB = strID + "/" + strYear + "/" + "BBBT";

                if (dtddo.Rows[0]["MA_LDO"].ToString().Substring(1, 1) != "3")// bien ban tinh bang chuong trinh
                {
                    rptCO.SetParameterValue("ID_VIPHAM", strIDBB);
                    //rptCO.SetParameterValue("DCHI_TTOAN", dtkhang.Rows[0]["DCHI_TTOAN"].ToString());
                    rptCO.SetParameterValue("dviqly_ctren", strTen_dviqly_CT.ToUpper());
                    rptCO.SetParameterValue("dviqly", strTen_dviqly);
                    rptCO.SetParameterValue("TEN_DDIEN1", dtkhang.Rows[0]["TEN_DDIEN1"].ToString());
                    rptCO.SetParameterValue("CVU_DDIEN1", dtkhang.Rows[0]["CVU_DDIEN1"].ToString());
                    rptCO.SetParameterValue("TEN_DDIEN2", dtkhang.Rows[0]["TEN_DDIEN2"].ToString());
                    rptCO.SetParameterValue("CVU_DDIEN2", dtkhang.Rows[0]["CVU_DDIEN2"].ToString());
                    rptCO.SetParameterValue("TEN_KHANG", dtkhang.Rows[0]["TEN_KHANG"].ToString());
                    if (dtkhang.Rows[0]["MA_KHANG"].ToString().Contains("TUDO"))
                    {
                        rptCO.SetParameterValue("MA_KHANG", "");
                    }
                    else
                    {
                        rptCO.SetParameterValue("MA_KHANG", dtkhang.Rows[0]["MA_KHANG"].ToString());
                    }
                    rptCO.SetParameterValue("DIA_CHI", dtkhang.Rows[0]["DIA_CHI"].ToString());
                    rptCO.SetParameterValue("DDIEN_MUA", dtkhang.Rows[0]["DDIEN_MUA"].ToString());
                    rptCO.SetParameterValue("CVU_MUA", dtkhang.Rows[0]["CVU_MUA"].ToString());
                    rptCO.SetParameterValue("CVU_MUA", dtkhang.Rows[0]["CVU_MUA"].ToString());
                    rptCO.SetParameterValue("DIA_CHI", dtkhang.Rows[0]["DIA_CHI"].ToString());
                    rptCO.SetParameterValue("TEN_KHANG", dtkhang.Rows[0]["TEN_KHANG"].ToString());
                    rptCO.SetParameterValue("lydo", dtkhang.Rows[0]["NGUYEN_NHAN"].ToString());
                    rptCO.SetParameterValue("loaicto", dtkhang.Rows[0]["LOAI_CTO"].ToString() == string.Empty ? "" : dtkhang.Rows[0]["LOAI_CTO"].ToString());
                    rptCO.SetParameterValue("lydotgianbatdau", dtkhang.Rows[0]["LYDO_TGIAN_BDAU"].ToString() == string.Empty ? "" : dtkhang.Rows[0]["LYDO_TGIAN_BDAU"].ToString());
                    rptCO.SetParameterValue("cancuttbq", dtkhang.Rows[0]["CANCU_TTBQ"].ToString() == string.Empty ? "" : dtkhang.Rows[0]["CANCU_TTBQ"].ToString());
                    rptCO.SetParameterValue("sobbktra", dtkhang.Rows[0]["SO_BB_KTRA"].ToString() == string.Empty ? " . . ." : dtkhang.Rows[0]["SO_BB_KTRA"].ToString());
                    rptCO.SetParameterValue("ngayktra", dtkhang.Rows[0]["NGAY_KTRA"].ToString() == string.Empty ? " . . ./ . . ./ . . . ." : Convert.ToDateTime(dtkhang.Rows[0]["NGAY_KTRA"]).ToString("dd/MM/yyyy"));
                    rptCO.SetParameterValue("ngay", DateTime.Now.Day.ToString());
                    rptCO.SetParameterValue("thang", DateTime.Now.Month.ToString());
                    rptCO.SetParameterValue("nam", DateTime.Now.Year.ToString());

                    rptCO.SetParameterValue("socto", dtddo.Rows[0]["SO_CTO"].ToString() == string.Empty ? "" : dtddo.Rows[0]["SO_CTO"].ToString());
                    rptCO.SetParameterValue("ngaybd", Convert.ToDateTime(dtddo.Rows[0]["NGAYVIPHAM_TU"]).ToString("dd/MM/yyyy"));
                    rptCO.SetParameterValue("ngaykt", Convert.ToDateTime(dtddo.Rows[0]["NGAYVIPHAM_DEN"]).ToString("dd/MM/yyyy"));
                    rptCO.SetParameterValue("TG_MDIEN", Math.Round((Convert.ToDecimal(dtddo.Rows[0]["TG_MDIEN"]) / 24), 2));
                    rptCO.SetParameterValue("TG_VIPHAM", dtddo.Rows[0]["TG_VIPHAM"].ToString());
                    rptCO.SetParameterValue("SL_DODEM", dtddo.Rows[0]["SL_DODEM"].ToString());
                    rptCO.SetParameterValue("SL_VIPHAM", dtddo.Rows[0]["SL_VIPHAM"].ToString());
                    rptCO.SetParameterValue("SL_SUDUNG", dtddo.Rows[0]["SL_SUDUNG"].ToString());
                    rptCO.SetParameterValue("gia", dtddo.Rows[0]["CHUOI_GIA"].ToString());

                    rptCO.SetParameterValue("THANH_TIEN", Convert.ToDecimal(dtddo.Rows[0]["THANH_TIEN"]).ToString("###,###,###,###"));
                    rptCO.SetParameterValue("TIEN_THUE", (Convert.ToDecimal(dtddo.Rows[0]["THANH_TIEN"]) * Convert.ToDecimal(0.1)).ToString("###,###,###,###"));
                    decimal tongtien = Convert.ToDecimal(dtddo.Rows[0]["THANH_TIEN"]) * Convert.ToDecimal(1.1);
                    rptCO.SetParameterValue("TONG_TIEN", tongtien.ToString("###,###,###,###"));
                    rptCO.SetParameterValue("BANG_CHU", VNCurrency.ToString(tongtien));

                    double csuatTieuthungay = 0;
                    if (dsDSTB != null && dsDSTB.Tables[0].Rows.Count > 0)
                    {
                        for (int i = 0; i < dtdstb.Rows.Count; i++)
                        {
                            csuatTieuthungay += Convert.ToDouble(dtdstb.Rows[i]["DNANG_SDUNG"]);
                        }
                    }
                    rptCO.SetParameterValue("csuatTieuthungay", csuatTieuthungay);

                    rpt_NPC_VIPHAM_DSACHTBI rptdstb = new rpt_NPC_VIPHAM_DSACHTBI();
                    rptdstb.SetDataSource(dtdstb);
                    rptdstb.SetParameterValue("ID_VIPHAM", strIDBB);
                    rptdstb.SetParameterValue("dviqly_ctren", strTen_dviqly_CT.ToUpper());
                    rptdstb.SetParameterValue("dviqly", strTen_dviqly);
                    rptdstb.SetParameterValue("DIA_CHI", dtkhang.Rows[0]["DIA_CHI"].ToString());
                    rptdstb.SetParameterValue("TEN_KHANG", dtkhang.Rows[0]["TEN_KHANG"].ToString());

                    UtilReport.RptManager.showReportToWin(this, rptCO, "", new string[] { "Formula1" }, new string[] { "Formula1" });
                    UtilReport.RptManager.showReportToWin(this, rptdstb, "", new string[] { "Formula1" }, new string[] { "Formula1" });
                }
                else
                {
                    rptTT.SetParameterValue("ID_VIPHAM", strIDBB);
                    //rptTT.SetParameterValue("DCHI_TTOAN", dtkhang.Rows[0]["DCHI_TTOAN"].ToString());
                    rptTT.SetParameterValue("dviqly_ctren", strTen_dviqly_CT.ToUpper());
                    rptTT.SetParameterValue("dviqly", strTen_dviqly);
                    rptTT.SetParameterValue("TEN_DDIEN1", dtkhang.Rows[0]["TEN_DDIEN1"].ToString());
                    rptTT.SetParameterValue("CVU_DDIEN1", dtkhang.Rows[0]["CVU_DDIEN1"].ToString());
                    rptTT.SetParameterValue("TEN_DDIEN2", dtkhang.Rows[0]["TEN_DDIEN2"].ToString());
                    rptTT.SetParameterValue("CVU_DDIEN2", dtkhang.Rows[0]["CVU_DDIEN2"].ToString());
                    rptTT.SetParameterValue("TEN_KHANG", dtkhang.Rows[0]["TEN_KHANG"].ToString());
                    if (dtkhang.Rows[0]["MA_KHANG"].ToString().Contains("TUDO"))
                    {
                        rptTT.SetParameterValue("MA_KHANG", "");
                    }
                    else
                    {
                        rptTT.SetParameterValue("MA_KHANG", dtkhang.Rows[0]["MA_KHANG"].ToString());
                    }
                    rptTT.SetParameterValue("DIA_CHI", dtkhang.Rows[0]["DIA_CHI"].ToString());
                    rptTT.SetParameterValue("DDIEN_MUA", dtkhang.Rows[0]["DDIEN_MUA"].ToString());
                    rptTT.SetParameterValue("CVU_MUA", dtkhang.Rows[0]["CVU_MUA"].ToString());
                    rptTT.SetParameterValue("CVU_MUA", dtkhang.Rows[0]["CVU_MUA"].ToString());
                    rptTT.SetParameterValue("DIA_CHI", dtkhang.Rows[0]["DIA_CHI"].ToString());
                    rptTT.SetParameterValue("TEN_KHANG", dtkhang.Rows[0]["TEN_KHANG"].ToString());
                    rptTT.SetParameterValue("lydo", dtkhang.Rows[0]["NGUYEN_NHAN"].ToString());

                    rptTT.SetParameterValue("ngaybd", Convert.ToDateTime(dtddo.Rows[0]["NGAYVIPHAM_TU"]).ToString("dd/MM/yyyy"));
                    rptTT.SetParameterValue("ngaykt", Convert.ToDateTime(dtddo.Rows[0]["NGAYVIPHAM_DEN"]).ToString("dd/MM/yyyy"));
                    rptTT.SetParameterValue("TG_MDIEN", Math.Round((Convert.ToDecimal(dtddo.Rows[0]["TG_MDIEN"]) / 24), 2));
                    rptTT.SetParameterValue("TG_VIPHAM", dtddo.Rows[0]["TG_VIPHAM"].ToString());
                    rptTT.SetParameterValue("SL_DODEM", dtddo.Rows[0]["SL_DODEM"].ToString());
                    rptTT.SetParameterValue("SL_VIPHAM", dtddo.Rows[0]["SL_VIPHAM"].ToString());
                    rptTT.SetParameterValue("SL_SUDUNG", dtddo.Rows[0]["SL_SUDUNG"].ToString());
                    rptTT.SetParameterValue("gia", dtddo.Rows[0]["CHUOI_GIA"].ToString());

                    rptTT.SetParameterValue("THANH_TIEN", Convert.ToDecimal(dtddo.Rows[0]["THANH_TIEN"]).ToString("###,###,###,###"));
                    rptTT.SetParameterValue("TIEN_THUE", (Convert.ToDecimal(dtddo.Rows[0]["THANH_TIEN"]) * Convert.ToDecimal(0.1)).ToString("###,###,###,###"));
                    decimal tongtien = Convert.ToDecimal(dtddo.Rows[0]["THANH_TIEN"]) * Convert.ToDecimal(1.1);
                    rptTT.SetParameterValue("TONG_TIEN", tongtien.ToString("###,###,###,###"));
                    rptTT.SetParameterValue("BANG_CHU", VNCurrency.ToString(tongtien));

                    UtilReport.RptManager.showReportToWin(this, rptTT, "", new string[] { "Formula1" }, new string[] { "Formula1" });

                }
                #endregion

                #region Mẫu Biên bản cũ
                /*
                rpt_NPC_VIPHAM_CO rptCO = new rpt_NPC_VIPHAM_CO();

                rptCO.SetParameterValue("ID_VIPHAM", dtkhang.Rows[0]["ID_VIPHAM"].ToString());
                //rptCO.SetParameterValue("DCHI_TTOAN", dtkhang.Rows[0]["DCHI_TTOAN"].ToString());
                rptCO.SetParameterValue("dviqly_ctren", strTen_dviqly_CT);
                rptCO.SetParameterValue("dviqly", strTen_dviqly);
                rptCO.SetParameterValue("TEN_DDIEN1", dtkhang.Rows[0]["TEN_DDIEN1"].ToString());
                rptCO.SetParameterValue("CVU_DDIEN1", dtkhang.Rows[0]["CVU_DDIEN1"].ToString());
                rptCO.SetParameterValue("TEN_DDIEN2", dtkhang.Rows[0]["TEN_DDIEN2"].ToString());
                rptCO.SetParameterValue("CVU_DDIEN2", dtkhang.Rows[0]["CVU_DDIEN2"].ToString());
                rptCO.SetParameterValue("TEN_KHANG", dtkhang.Rows[0]["TEN_KHANG"].ToString());
                if (dtkhang.Rows[0]["MA_KHANG"].ToString().Contains("TUDO"))
                {
                    rptCO.SetParameterValue("MA_KHANG", "");
                }
                else
                {
                    rptCO.SetParameterValue("MA_KHANG", dtkhang.Rows[0]["MA_KHANG"].ToString());
                }
                rptCO.SetParameterValue("DIA_CHI", dtkhang.Rows[0]["DIA_CHI"].ToString());
                rptCO.SetParameterValue("DDIEN_MUA", dtkhang.Rows[0]["DDIEN_MUA"].ToString());
                rptCO.SetParameterValue("CVU_MUA", dtkhang.Rows[0]["CVU_MUA"].ToString());
                rptCO.SetParameterValue("CVU_MUA", dtkhang.Rows[0]["CVU_MUA"].ToString());
                rptCO.SetParameterValue("DIA_CHI", dtkhang.Rows[0]["DIA_CHI"].ToString());
                rptCO.SetParameterValue("TEN_KHANG", dtkhang.Rows[0]["TEN_KHANG"].ToString());
                rptCO.SetParameterValue("lydo", dtkhang.Rows[0]["NGUYEN_NHAN"].ToString());

                rptCO.SetParameterValue("ngaybd", Convert.ToDateTime(dtddo.Rows[0]["NGAYVIPHAM_TU"]).ToString("dd/MM/yyyy"));
                rptCO.SetParameterValue("ngaykt", Convert.ToDateTime(dtddo.Rows[0]["NGAYVIPHAM_DEN"]).ToString("dd/MM/yyyy"));
                rptCO.SetParameterValue("TG_MDIEN", Math.Round((Convert.ToDecimal(dtddo.Rows[0]["TG_MDIEN"]) / 24),2));
                rptCO.SetParameterValue("TG_VIPHAM", dtddo.Rows[0]["TG_VIPHAM"].ToString());
                rptCO.SetParameterValue("SL_DODEM", dtddo.Rows[0]["SL_DODEM"].ToString());
                rptCO.SetParameterValue("SL_VIPHAM", dtddo.Rows[0]["SL_VIPHAM"].ToString());
                rptCO.SetParameterValue("SL_SUDUNG", dtddo.Rows[0]["SL_SUDUNG"].ToString());
                rptCO.SetParameterValue("gia", dtddo.Rows[0]["CHUOI_GIA"].ToString());

                rptCO.SetParameterValue("THANH_TIEN", Convert.ToDecimal(dtddo.Rows[0]["THANH_TIEN"]).ToString("###,###,###,###"));
                rptCO.SetParameterValue("TIEN_THUE", (Convert.ToDecimal(dtddo.Rows[0]["THANH_TIEN"]) * Convert.ToDecimal(0.1)).ToString("###,###,###,###"));
                decimal tongtien = Convert.ToDecimal(dtddo.Rows[0]["THANH_TIEN"]) * Convert.ToDecimal(1.1);
                rptCO.SetParameterValue("TONG_TIEN", tongtien.ToString("###,###,###,###"));
                rptCO.SetParameterValue("BANG_CHU", VNCurrency.ToString(tongtien));

                double csuatTieuthungay = 0;
                if (dsDSTB != null && dsDSTB.Tables[0].Rows.Count > 0)
                {
                    for (int i = 0; i < dtdstb.Rows.Count; i++)
                    {
                        csuatTieuthungay += Convert.ToDouble(dtdstb.Rows[i]["DNANG_SDUNG"]);
                    }
                }
                rptCO.SetParameterValue("csuatTieuthungay", csuatTieuthungay);

                rpt_NPC_VIPHAM_DSACHTBI rptdstb = new rpt_NPC_VIPHAM_DSACHTBI();
                rptdstb.SetDataSource(dtdstb);
                rptdstb.SetParameterValue("ID_VIPHAM", dtkhang.Rows[0]["ID_VIPHAM"].ToString());
                rptdstb.SetParameterValue("dviqly_ctren", strTen_dviqly_CT);
                rptdstb.SetParameterValue("dviqly", strTen_dviqly);
                rptdstb.SetParameterValue("DIA_CHI", dtkhang.Rows[0]["DIA_CHI"].ToString());
                rptdstb.SetParameterValue("TEN_KHANG", dtkhang.Rows[0]["TEN_KHANG"].ToString());

                //UtilReport.RptManager.showReportToWin(this, rptCO, "", new string[] { "Formula1" }, new string[] { "Formula1" });
                //UtilReport.RptManager.showReportToWin(this, rptdstb, "", new string[] { "Formula1" }, new string[] { "Formula1" });
                */
                #endregion




            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }

        }

        private void btnLayCancu_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                CHISO_KYbBT = 0;
                CHISO_KYbCD = 0;
                CHISO_KYbTD = 0;
                CHISO_KYeBT = 0;
                CHISO_KYeCD = 0;
                CHISO_KYeTD = 0;
                hsnBG = 0;
                hsnEND = 0;
                checkLayCancu = false;
                SanluongHeddBT = 0;
                SanluongHeddCD = 0;
                SanluongHeddTD = 0;

                dsCancu = new DataSet();
                double db;

                if (checkCoHedd == true) // có hệ đo đếm -> lấy dữ liệu căn cứ
                {
                    if (ckbKhongcsDau.IsChecked == false)
                    {
                        if (!double.TryParse(txtChisodungBT.Text.Trim(), out db))
                        {
                            MessageBox.Show("Hãy nhập chỉ số bộ BT đúng gần nhất !");
                            txtChisodungBT.Focus();
                            return;
                        }

                        if (!double.TryParse(txtChisodungCD.Text.Trim(), out db))
                        {
                            MessageBox.Show("Hãy nhập chỉ số bộ CD đúng gần nhất !");
                            txtChisodungCD.Focus();
                            return;
                        }

                        if (!double.TryParse(txtChisodungTD.Text.Trim(), out db))
                        {
                            MessageBox.Show("Hãy nhập chỉ số bộ TD đúng gần nhất !");
                            txtChisodungTD.Focus();
                            return;
                        }
                    }

                    if (!double.TryParse(txtChisoVPBT.Text.Trim(), out db))
                    {
                        MessageBox.Show("Hãy nhập chỉ số bộ BT khi phát hiện vi phạm !");
                        txtChisoVPBT.Focus();
                        return;
                    }

                    if (!double.TryParse(txtChisoVPCD.Text.Trim(), out db))
                    {
                        MessageBox.Show("Hãy nhập chỉ số bộ CD khi phát hiện vi phạm !");
                        txtChisoVPCD.Focus();
                        return;
                    }

                    if (!double.TryParse(txtChisoVPTD.Text.Trim(), out db))
                    {
                        MessageBox.Show("Hãy nhập chỉ số bộ TD khi phát hiện vi phạm !");
                        txtChisoVPTD.Focus();
                        return;
                    }


                    if (dtpBdVipham.SelectedDate.HasValue && dtpKtVipham.SelectedDate.HasValue && dtpBdVipham.SelectedDate.Value.Date < dtpKtVipham.SelectedDate.Value.Date)
                    {
                        dtimeNgayBegin = dtpBdVipham.SelectedDate.Value.Date;
                        dtimeNgayStop = dtpKtVipham.SelectedDate.Value.Date;

                        dsCancu = GlobalServices.Service_Truythu.Get_Sanluong_Dtu_Vipham(strMa_dviqly, strMa_ddo, dtimeNgayBegin, dtimeNgayStop);                        

                        if (dsCancu != null )
                        {
                            strSo_cto = dsCancu.Tables["CHI_SO"].Rows[0]["SO_CTO"].ToString();
                            strMa_cto = dsCancu.Tables["CHI_SO"].Rows[0]["MA_CTO"].ToString();
                            txtSocto.Text = strSo_cto;
                            txtMacto.Text = strMa_cto;
                            txtLoai_cto.Text = dsCancu.Tables["LOAICTO"].Rows[0]["LOAI_CTO"].ToString();

                            // ngày đúng gần nhất nhỏ hơn ngày đầu kỳ của kỳ xa nhất lấy được 
                            // -> chỉ số gần nhất để trừ lấy sản lượng đoạn đầu là chỉ số cũ(cs đầu kỳ) của kỳ xa nhất                        
                            if (dtimeNgayBegin < Convert.ToDateTime(dsCancu.Tables["MIN"].Rows[0]["NGAY_DKY"]))
                            {
                                CHISO_KYbBT = Convert.ToDouble(dsCancu.Tables["MIN"].Select("BCS = 'BT'")[0]["CHISO_CU"].ToString());
                                CHISO_KYbCD = Convert.ToDouble(dsCancu.Tables["MIN"].Select("BCS = 'CD'")[0]["CHISO_CU"].ToString());
                                CHISO_KYbTD = Convert.ToDouble(dsCancu.Tables["MIN"].Select("BCS = 'TD'")[0]["CHISO_CU"].ToString());
                                dtimeNgayCSKYb = Convert.ToDateTime(dsCancu.Tables["MIN"].Rows[0]["NGAY_DKY"]);
                            }
                            else
                            {// -> chỉ số gần nhất để trừ lấy sản lượng đoạn đầu là chỉ số mới(cs cuối kỳ) của kỳ xa nhất         
                                CHISO_KYbBT = Convert.ToDouble(dsCancu.Tables["MIN"].Select("BCS = 'BT'")[0]["CHISO_MOI"].ToString());
                                CHISO_KYbCD = Convert.ToDouble(dsCancu.Tables["MIN"].Select("BCS = 'CD'")[0]["CHISO_MOI"].ToString());
                                CHISO_KYbTD = Convert.ToDouble(dsCancu.Tables["MIN"].Select("BCS = 'TD'")[0]["CHISO_MOI"].ToString());
                                dtimeNgayCSKYb = Convert.ToDateTime(dsCancu.Tables["MIN"].Rows[0]["NGAY_CKY"]);
                            }

                            // ngày phát hiện vp lớn hơn ngày cuối kỳ của kỳ mới nhất lấy được (ngày phát hiện vp nằm ngoài kỳ mời nhất lấy được)
                            // -> chỉ số gần nhất để trừ lấy sluong là chỉ số mới(cs cuối kỳ)
                            if (dtimeNgayStop > Convert.ToDateTime(dsCancu.Tables["MAX"].Rows[0]["NGAY_CKY"]))
                            {
                                CHISO_KYeBT = Convert.ToDouble(dsCancu.Tables["MAX"].Select("BCS = 'BT'")[0]["CHISO_MOI"].ToString());
                                CHISO_KYeCD = Convert.ToDouble(dsCancu.Tables["MAX"].Select("BCS = 'CD'")[0]["CHISO_MOI"].ToString());
                                CHISO_KYeTD = Convert.ToDouble(dsCancu.Tables["MAX"].Select("BCS = 'TD'")[0]["CHISO_MOI"].ToString());                                
                                dtimeNgayCSKYe = Convert.ToDateTime(dsCancu.Tables["MAX"].Rows[0]["NGAY_CKY"]);
                            }
                            else
                            {// -> chỉ số gần nhất để trừ lấy sluong đoạn cuối là chỉ số cũ(cs đầu kỳ)
                                CHISO_KYeBT = Convert.ToDouble(dsCancu.Tables["MAX"].Select("BCS = 'BT'")[0]["CHISO_CU"].ToString());
                                CHISO_KYeCD = Convert.ToDouble(dsCancu.Tables["MAX"].Select("BCS = 'CD'")[0]["CHISO_CU"].ToString());
                                CHISO_KYeTD = Convert.ToDouble(dsCancu.Tables["MAX"].Select("BCS = 'TD'")[0]["CHISO_CU"].ToString());
                                dtimeNgayCSKYe = Convert.ToDateTime(dsCancu.Tables["MAX"].Rows[0]["NGAY_DKY"]);
                            }

                            hsnBG = Convert.ToDouble(dsCancu.Tables["MIN"].Rows[0]["HS_NHAN"].ToString());
                            hsnEND = Convert.ToDouble(dsCancu.Tables["MAX"].Rows[0]["HS_NHAN"].ToString());

                            #region-- cat tu Tinh_Vipham
                            if (checkCoCSdau == true)
                            {
                                CHISO_BGBT = Convert.ToDouble(txtChisodungBT.Text.Trim().ToString());
                                CHISO_BGCD = Convert.ToDouble(txtChisodungCD.Text.Trim().ToString());
                                CHISO_BGTD = Convert.ToDouble(txtChisodungTD.Text.Trim().ToString());
                            }
                            else
                            {
                                CHISO_BGBT = 0;
                                CHISO_BGCD = 0;
                                CHISO_BGTD = 0;
                            }

                            CHISO_ENDBT = Convert.ToDouble(txtChisoVPBT.Text.Trim().ToString());
                            CHISO_ENDCD = Convert.ToDouble(txtChisoVPCD.Text.Trim().ToString());
                            CHISO_ENDTD = Convert.ToDouble(txtChisoVPTD.Text.Trim().ToString());

                            // lấy tổng sản lượng các kỳ tròn kỳ không có chứa thời điểm đầu và cuối vi phạm
                            if (dsCancu.Tables.Contains("SAN_LUONG") && dsCancu.Tables["SAN_LUONG"].Rows.Count > 0)
                            {
                                DataRow[] ArrBT = dsCancu.Tables["SAN_LUONG"].Select("BCS = 'BT'");
                                DataRow[] ArrCD = dsCancu.Tables["SAN_LUONG"].Select("BCS = 'CD'");
                                DataRow[] ArrTD = dsCancu.Tables["SAN_LUONG"].Select("BCS = 'TD'");
                                for (int i = 0; i < ArrBT.Count(); i++)
                                {
                                    SanluongHeddBT += Convert.ToDouble(ArrBT[i]["SLUONG_END"].ToString());
                                }
                                for (int i = 0; i < ArrCD.Count(); i++)
                                {
                                    SanluongHeddCD += Convert.ToDouble(ArrCD[i]["SLUONG_END"].ToString());
                                }
                                for (int i = 0; i < ArrTD.Count(); i++)
                                {
                                    SanluongHeddTD += Convert.ToDouble(ArrTD[i]["SLUONG_END"].ToString());
                                }
                            }

                            // trường hợp thời điểm đầu nằm trước cả kỳ xa nhất -> cộng sluong kỳ này
                            if (dtimeNgayBegin < Convert.ToDateTime(dsCancu.Tables["MIN"].Rows[0]["NGAY_DKY"]))
                            {
                                SanluongHeddBT += Convert.ToDouble(dsCancu.Tables["MIN"].Select("BCS = 'BT'")[0]["SAN_LUONG"]);
                                SanluongHeddCD += Convert.ToDouble(dsCancu.Tables["MIN"].Select("BCS = 'CD'")[0]["SAN_LUONG"]);
                                SanluongHeddTD += Convert.ToDouble(dsCancu.Tables["MIN"].Select("BCS = 'TD'")[0]["SAN_LUONG"]);
                            }

                            // trường hợp thời điểm cuối nằm sau cả kỳ gần nhất -> cộng sluong kỳ này
                            if (dtimeNgayStop > Convert.ToDateTime(dsCancu.Tables["MAX"].Rows[0]["NGAY_CKY"]))
                            {
                                SanluongHeddBT += Convert.ToDouble(dsCancu.Tables["MAX"].Select("BCS = 'BT'")[0]["SAN_LUONG"]);
                                SanluongHeddCD += Convert.ToDouble(dsCancu.Tables["MAX"].Select("BCS = 'CD'")[0]["SAN_LUONG"]);
                                SanluongHeddTD += Convert.ToDouble(dsCancu.Tables["MAX"].Select("BCS = 'TD'")[0]["SAN_LUONG"]);
                            }
                            sanluongKy2BT = SanluongHeddBT;
                            sanluongKy2CD = SanluongHeddCD;
                            sanluongKy2TD = SanluongHeddTD;

                            // cộng thêm sản lượng phần đầu 
                            if (checkCoCSdau == true)
                            {// có chỉ số đúng gần nhất
                                SanluongHeddBT += (CHISO_KYbBT - CHISO_BGBT) * hsnBG; // cộng thêm sản lượng phần đầu
                                SanluongHeddCD += (CHISO_KYbCD - CHISO_BGCD) * hsnBG;
                                SanluongHeddTD += (CHISO_KYbTD - CHISO_BGTD) * hsnBG;

                                sanluongKy1BT = (CHISO_KYbBT - CHISO_BGBT) * hsnBG;
                                sanluongKy1CD = (CHISO_KYbCD - CHISO_BGCD) * hsnBG;
                                sanluongKy1TD = (CHISO_KYbTD - CHISO_BGTD) * hsnBG;
                            }
                            else
                            {// không có chỉ số đúng gần nhất -> tính nội suy phần sản lượng đầu
                                TimeSpan tskhoangnho;
                                TimeSpan tsKy;
                                double tyle = 0;
                                if (dtimeNgayBegin < Convert.ToDateTime(dsCancu.Tables["MIN"].Rows[0]["NGAY_DKY"]))
                                {
                                    tskhoangnho = Convert.ToDateTime(dsCancu.Tables["MIN"].Rows[0]["NGAY_DKY"]) - dtimeNgayBegin;
                                }
                                else
                                {
                                    tskhoangnho = Convert.ToDateTime(dsCancu.Tables["MIN"].Rows[0]["NGAY_CKY"]) - dtimeNgayBegin;
                                }

                                tsKy = Convert.ToDateTime(dsCancu.Tables["MIN"].Rows[0]["NGAY_CKY"]) - Convert.ToDateTime(dsCancu.Tables["MIN"].Rows[0]["NGAY_DKY"]);
                                tyle = Convert.ToDouble(tskhoangnho.Days + 1) / Convert.ToDouble(tsKy.Days + 1);

                                SanluongHeddBT += Math.Round(tyle * Convert.ToDouble(dsCancu.Tables["MIN"].Select("BCS = 'BT'")[0]["SAN_LUONG"]), 0);
                                SanluongHeddCD += Math.Round(tyle * Convert.ToDouble(dsCancu.Tables["MIN"].Select("BCS = 'CD'")[0]["SAN_LUONG"]), 0);
                                SanluongHeddTD += Math.Round(tyle * Convert.ToDouble(dsCancu.Tables["MIN"].Select("BCS = 'TD'")[0]["SAN_LUONG"]), 0);

                                sanluongKy1BT = Math.Round(tyle * Convert.ToDouble(dsCancu.Tables["MIN"].Select("BCS = 'BT'")[0]["SAN_LUONG"]), 0);
                                sanluongKy1CD = Math.Round(tyle * Convert.ToDouble(dsCancu.Tables["MIN"].Select("BCS = 'CD'")[0]["SAN_LUONG"]), 0);
                                sanluongKy1TD = Math.Round(tyle * Convert.ToDouble(dsCancu.Tables["MIN"].Select("BCS = 'TD'")[0]["SAN_LUONG"]), 0);
                            }

                            SanluongHeddBT += (CHISO_ENDBT - CHISO_KYeBT) * hsnEND; // cộng thêm sản lượng phần cuối
                            SanluongHeddCD += (CHISO_ENDCD - CHISO_KYeCD) * hsnEND;
                            SanluongHeddTD += (CHISO_ENDTD - CHISO_KYeTD) * hsnEND;

                            sanluongKy3BT = (CHISO_ENDBT - CHISO_KYeBT) * hsnEND;
                            sanluongKy3CD = (CHISO_ENDCD - CHISO_KYeCD) * hsnEND;
                            sanluongKy3TD = (CHISO_ENDTD - CHISO_KYeTD) * hsnEND;

                            SanluongHedd = SanluongHeddBT + SanluongHeddCD + SanluongHeddTD;

                            txtSanluongHedd.Text = SanluongHedd.ToString();

                            #endregion

                            checkLayCancu = true;
                        }
                        else
                        {
                            checkLayCancu = false;
                        }

                        #region -- lấy giá - cắt từ tính vi phạm
                        DataSet dsApgia = new DataSet();
                        dsApgia = GlobalServices.Service_Truythu.GetGia_By_MaDDoBCS(strMa_dviqly, strMa_ddo);

                        //lấy biên bản apgia
                        if (dsApgia != null && dsApgia.Tables[0].Rows.Count > 0)
                        {
                            var apgia = (from a in dsApgia.Tables[0].AsEnumerable()
                                         select new
                                         {
                                             SO_THUTU = Convert.ToInt64(a["SO_THUTU"]),
                                             MA_DDO = a["MA_DDO"].ToString(),
                                             LOAI_BCS = a["LOAI_BCS"].ToString(),
                                             DINH_MUC = a["DINH_MUC"].ToString(),
                                             LOAI_DMUC = a["LOAI_DMUC"].ToString() == string.Empty ? "" : a["LOAI_DMUC"].ToString(),
                                             MA_NN = a["MA_NN"].ToString(),
                                             MA_NHOMNN = a["MA_NHOMNN"].ToString(),
                                             ID_GIANHOMNN = Convert.ToInt64(a["ID_GIANHOMNN"]),
                                             DON_GIA = Convert.ToDecimal(a["DON_GIA"]),
                                             SO_HO = Convert.ToDecimal(a["SO_HO"])
                                         }).ToList();

                            //lấy giá ko SH
                            var maxApgiakhongSH = apgia.Where(c => c.DON_GIA == apgia.Where(c2 => c2.MA_DDO == c.MA_DDO).Max(c3 => c3.DON_GIA)).ToList();
                            giaMaxkhongSH = Convert.ToDouble(maxApgiakhongSH.Select(c => c.DON_GIA).FirstOrDefault());

                            //lấy giá SH          
                            var SH = (from p in apgia
                                      where p.MA_NHOMNN.Contains("SH")
                                      select p).ToList();

                            Int64[] ArrIDGiaSH;
                            DataSet dsGiaSH = new DataSet();
                            if (SH != null && SH.Count > 0)
                            {
                                ArrIDGiaSH = SH.Select(c => c.ID_GIANHOMNN).Distinct().ToArray();
                                dsGiaSH = GlobalServices.Service_Truythu.select_D_BAC_THANG(ArrIDGiaSH);

                                if (dsGiaSH != null && dsGiaSH.Tables[0].Rows.Count > 0)
                                {
                                    var giaSH = (from p in dsGiaSH.Tables[0].AsEnumerable()
                                                 select new
                                                 {
                                                     BTHANG_ID = Convert.ToInt64(p["BTHANG_ID"]),
                                                     GIANHOMNN_ID = Convert.ToInt64(p["GIANHOMNN_ID"]),
                                                     MA_NHOMNN = p["MA_NHOMNN"].ToString(),
                                                     STT_BTHANG = Convert.ToInt64(p["STT_BTHANG"]),
                                                     DON_GIA = Convert.ToDecimal(p["DON_GIA"]),
                                                     DINH_MUC = Convert.ToInt64(p["DINH_MUC"]),
                                                     MO_TA = p["MO_TA"].ToString() == string.Empty ? "" : p["MO_TA"].ToString(),
                                                     NGAY_HLUC = Convert.ToDateTime(p["NGAY_HLUC"]),
                                                     NGAY_HHLUC = p["NGAY_HHLUC"].ToString() == string.Empty ? Convert.ToDateTime("01/01/01") : Convert.ToDateTime(p["NGAY_HHLUC"]),
                                                     DIEN_GIAI = p["DIEN_GIAI"].ToString() == string.Empty ? "" : p["DIEN_GIAI"].ToString(),
                                                     MA_NGIA = p["MA_NGIA"].ToString(),
                                                     MA_NN = p["MA_NN"].ToString()
                                                 }).ToList();

                                    var maxGiaSH = (giaSH.Where(c => c.DON_GIA == giaSH.Where(c2 => c2.GIANHOMNN_ID == c.GIANHOMNN_ID).Max(c3 => c3.DON_GIA))).ToList();
                                    giaMaxSH = Convert.ToDouble(maxGiaSH.Select(c => c.DON_GIA).FirstOrDefault());

                                }
                            }

                            if (giaMaxkhongSH > giaMaxSH)
                            {
                                giaMax = giaMaxkhongSH;
                            }
                            else
                            {
                                giaMax = giaMaxSH;
                            }

                            txtGia.Text = giaMax.ToString();
                        }
                        #endregion
                    }
                    else
                    {
                        if (!dtpBdVipham.SelectedDate.HasValue)
                        {
                            MessageBox.Show("Hãy nhập ngày chưa vi phạm gần nhất");
                            return;
                        }

                        if (!dtpKtVipham.SelectedDate.HasValue)
                        {
                            MessageBox.Show("Hãy nhập ngày phát hiện vi phạm!");
                            return;
                        }

                        if (dtpBdVipham.SelectedDate.Value.Date > dtpKtVipham.SelectedDate.Value.Date)
                        {
                            MessageBox.Show("Hãy nhập lại ngày chưa vi phạm gần nhất và ngày phát hiện vi phạm !");
                            return;
                        }
                        return;
                    }
                }
            }
            catch (Exception ex)
            {
                checkLayCancu = false;
                MessageBox.Show(ex.ToString());
            }
        }

        private void btnCapnhatchitiet_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                sogiomatdien = Convert.ToDouble(txtSogiomatdienVP.Text.Trim().ToString());
                TimeSpan ts = dtpKtVipham.SelectedDate.Value.Date - dtpBdVipham.SelectedDate.Value.Date;
                SongayVP = ts.Days + 1 - sogiomatdien / 24;
                Tinh_congsuat_tieuthu();
            }
            catch (Exception ex)
            {
                MessageBox.Show("");
            }
        }

        private void Tinh_congsuat_tieuthu()
        {
            try
            {
                checkTinhDsachTbi = false;
                SanluongSudungNgay = 0;
                for (int i = 0; i < dt.Rows.Count; i++)
                {
                    decimal dcout = 0;

                    if (dt.Rows[i]["TEN_TBI"].ToString().Trim() == string.Empty)
                    {
                        MessageBox.Show("Nhập tên thiết bị còn trống!");
                        checkTinhDsachTbi = false;
                        return;
                    }

                    if (!decimal.TryParse(dt.Rows[i]["SO_LUONG"].ToString(), out dcout))
                    {
                        MessageBox.Show("Nhập lại số lượng của " + dt.Rows[i]["TEN_TBI"].ToString());
                        checkTinhDsachTbi = false;
                        return;
                    }

                    if (!decimal.TryParse(dt.Rows[i]["CONG_SUAT"].ToString(), out dcout))
                    {
                        MessageBox.Show("Nhập lại công suất của " + dt.Rows[i]["TEN_TBI"].ToString());
                        checkTinhDsachTbi = false;
                        return;
                    }

                    if (!decimal.TryParse(dt.Rows[i]["COSFI"].ToString(), out dcout))
                    {
                        MessageBox.Show("Nhập lại Cosfi của " + dt.Rows[i]["TEN_TBI"].ToString());
                        checkTinhDsachTbi = false;
                        return;
                    }
                    else
                    {
                        if (Convert.ToDecimal(dt.Rows[i]["COSFI"]) > 1)
                        {
                            MessageBox.Show("Nhập lại Cosfi của " + dt.Rows[i]["TEN_TBI"].ToString() + "\n" + "Hệ số cosfi không được lớn hơn 1");
                            checkTinhDsachTbi = false;
                            return;
                        }
                    }

                    if (!decimal.TryParse(dt.Rows[i]["THOIGIAN_SDUNG"].ToString(), out dcout))
                    {
                        MessageBox.Show("Nhập lại thời gian của " + dt.Rows[i]["TEN_TBI"].ToString());
                        checkTinhDsachTbi = false;
                        return;
                    }
                    else
                    {
                        if (Convert.ToDecimal(dt.Rows[i]["THOIGIAN_SDUNG"]) > 24)
                        {
                            MessageBox.Show("Nhập lại thời gian của " + dt.Rows[i]["TEN_TBI"].ToString() + "\n" + "Thời gian sử dụng trong ngày không lớn hơn 24 giờ !");
                            checkTinhDsachTbi = false;
                            return;
                        }
                    }

                    if (!decimal.TryParse(dt.Rows[i]["SO_NGAY"].ToString(), out dcout))
                    {
                        MessageBox.Show("Nhập lại số ngày sử dụng của " + dt.Rows[i]["TEN_TBI"].ToString());
                        checkTinhDsachTbi = false;
                        return;
                    }
                    else
                    {
                        if (Convert.ToDouble(dt.Rows[i]["SO_NGAY"]) > SongayVP)
                        {
                            MessageBox.Show("Nhập lại số ngày sử dụng của " + dt.Rows[i]["TEN_TBI"].ToString() + "\n" + "Số ngày lớn hơn thời gian vi phạm: " + SongayVP.ToString());
                            checkTinhDsachTbi = false;
                            return;
                        }
                    }

                    dt.Rows[i]["DNANG_SDUNG"] = Math.Round(Convert.ToDecimal(dt.Rows[i]["SO_LUONG"]) * Convert.ToDecimal(dt.Rows[i]["CONG_SUAT"]) * Convert.ToDecimal(dt.Rows[i]["COSFI"]) * Convert.ToDecimal(dt.Rows[i]["THOIGIAN_SDUNG"]) * Convert.ToDecimal(dt.Rows[i]["SO_NGAY"]), 2);
                    SanluongSudungNgay += Convert.ToDouble(dt.Rows[i]["DNANG_SDUNG"]);
                    checkTinhDsachTbi = true;
                }

                if (SanluongSudungNgay > 999999) // trăm nghìn kWh trong ngày
                {
                    MessageBox.Show("Sản lượng sử dụng ngày: " + SanluongSudungNgay.ToString() + "(kWh) quá lớn !" + "\n" +"Hãy xem lại số liệu !");
                    checkTinhDsachTbi = false;
                    return;
                }

                lblDientt.Content = "Tổng: " + SanluongSudungNgay.ToString("### ### ### ###") + " kWh";
            }
            catch (Exception ex)
            {
                lblDientt.Content = "";
                checkTinhDsachTbi = false;
                MessageBox.Show(ex.ToString());
            }
        }

        private void btnLayDuLieu_S_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                this.Cursor = Cursors.Wait;

                setEntity_KH("btnTimKiem");
                if (dsNPC_VIPHAM_KHANG_Entity.Tables["NPC_VIPHAM_KHANG"].Rows.Count > 0)
                {
                    DataSet dsTemp;
                    dsTemp = GlobalServices.Service_Truythu.select_NPC_VIPHAM_KHANG_by_1_Col_dtu(dsNPC_VIPHAM_KHANG_Entity, ref strError);

                    if (dsTemp != null)
                    {
                        strFind = "Yes";
                        dtHienthi = dsTemp.Tables[0].Copy();

                        if (dtHienthi.Rows.Count > 0)
                        {
                            dgrDSach_Vipham.ItemsSource = dtHienthi.DefaultView;
                            //lbltso.Content = "Tổng số: " + dgrOD_LO.Items.Count;                            

                            if (strBtnClick != "btnThemMoi" || strBtnClick != "SUA")
                            {
                                dgrDSach_Vipham.SelectedIndex = 0;
                            }

                            CheckIsEnableButtonSuaXoa();
                            this.Cursor = null;
                        }
                    }
                    else
                    {
                        this.Cursor = null;
                        MessageBox.Show("Không tìm thấy theo điều kiện !" + "\n" + strError.ToString());
                        strFind = "No";
                        txtMa_VP_S.Focus();
                        e.Handled = true;
                    }

                }

            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
        }

        private void btnChon_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                setCurrentData();
                CheckIsEnableButtonSuaXoa();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
        }

        private void setCurrentData()
        {
            try
            {
                DataRowView drv = dgrDSach_Vipham.SelectedItem as DataRowView;
                strDCHI_TTOAN = "";

                if (drv != null)
                {
                    if (strBtnClick == "btnThemMoi" || strBtnClick == "SUA")
                    {
                    }
                    else
                    {
                        intID_VIPHAM = Convert.ToInt64(drv.Row["ID_VIPHAM"].ToString());

                        DataSet dsKHANG = GlobalServices.Service_Truythu.select_NPC_VIPHAM_KHANG_by_id_truythu(strMa_dviqly, intID_VIPHAM);

                        DataSet dsCHI_SO = GlobalServices.Service_Truythu.select_NPC_VIPHAM_CHISO_by_id_truythu(strMa_dviqly, intID_VIPHAM);

                        DataSet dsDDO = GlobalServices.Service_Truythu.select_NPC_VIPHAM_DDO_by_id_truythu(strMa_dviqly, intID_VIPHAM);

                        DataSet dsDSACHTBI = GlobalServices.Service_Truythu.select_NPC_VIPHAM_DSACHTBI_by_id_vipham(strMa_dviqly, intID_VIPHAM);


                        #region KHACH_HANG
                        if (dsKHANG != null && dsKHANG.Tables[0].Rows.Count > 0)
                        {
                            txtTen_khang.Text = dsKHANG.Tables[0].Rows[0]["TEN_KHANG"].ToString();
                            txtDia_chi.Text = dsKHANG.Tables[0].Rows[0]["DIA_CHI"].ToString();
                            txtDai_dien_mua.Text = dsKHANG.Tables[0].Rows[0]["DDIEN_MUA"].ToString();
                            txtChucvu_mua.Text = dsKHANG.Tables[0].Rows[0]["CVU_MUA"].ToString();

                            if (dsKHANG.Tables[0].Rows[0]["DDIEN_MUA2"].ToString() != string.Empty)
                            {
                                txtDai_dien_mua1.Text = dsKHANG.Tables[0].Rows[0]["DDIEN_MUA2"].ToString();
                            }

                            if (dsKHANG.Tables[0].Rows[0]["CVU_MUA2"].ToString() != string.Empty)
                            {
                                txtChucvu_mua1.Text = dsKHANG.Tables[0].Rows[0]["CVU_MUA2"].ToString();
                            }

                            txtMa_VP.Text = dsKHANG.Tables[0].Rows[0]["ID_VIPHAM"].ToString();

                            txtHoten1.Text = dsKHANG.Tables[0].Rows[0]["TEN_DDIEN1"].ToString();
                            txtChucvu1.Text = dsKHANG.Tables[0].Rows[0]["CVU_DDIEN1"].ToString();

                            if (dsKHANG.Tables[0].Rows[0]["TEN_DDIEN2"].ToString() != string.Empty)
                            {
                                txtHoten2.Text = dsKHANG.Tables[0].Rows[0]["TEN_DDIEN2"].ToString();
                            }

                            if (dsKHANG.Tables[0].Rows[0]["CVU_DDIEN2"].ToString() != string.Empty)
                            {
                                txtChucvu2.Text = dsKHANG.Tables[0].Rows[0]["CVU_DDIEN2"].ToString();
                            }


                            txtNguyennhan.Text = dsKHANG.Tables[0].Rows[0]["NGUYEN_NHAN"].ToString();

                            strMa_khang = dsKHANG.Tables[0].Rows[0]["MA_KHANG"].ToString();

                            strLoai_khang = dsKHANG.Tables[0].Rows[0]["LOAI_KHANG"].ToString();

                            strDCHI_TTOAN = dsKHANG.Tables[0].Rows[0]["DCHI_TTOAN"].ToString();                            

                            strNguoiTao = dsKHANG.Tables[0].Rows[0]["NGUOI_TAO"].ToString();
                            dtimeNgaytao = Convert.ToDateTime(dsKHANG.Tables[0].Rows[0]["NGAY_TAO"]);
                            txtLoai_cto.Text = dsKHANG.Tables[0].Rows[0]["LOAI_CTO"].ToString() == string.Empty ? " " : dsKHANG.Tables[0].Rows[0]["LOAI_CTO"].ToString();

                            txtLydobatdau.Text = dsKHANG.Tables[0].Rows[0]["LYDO_TGIAN_BDAU"].ToString() == string.Empty ? "" : dsKHANG.Tables[0].Rows[0]["LYDO_TGIAN_BDAU"].ToString();
                            txtCancuTTBQ.Text = dsKHANG.Tables[0].Rows[0]["CANCU_TTBQ"].ToString() == string.Empty ? "" : dsKHANG.Tables[0].Rows[0]["CANCU_TTBQ"].ToString();
                            txtSobbktra.Text = dsKHANG.Tables[0].Rows[0]["SO_BB_KTRA"].ToString() == string.Empty ? "" : dsKHANG.Tables[0].Rows[0]["SO_BB_KTRA"].ToString();
                            dtpKiemtra.SelectedDate = dsKHANG.Tables[0].Rows[0]["NGAY_KTRA"].ToString() == string.Empty ? DateTime.Now : Convert.ToDateTime(dsKHANG.Tables[0].Rows[0]["NGAY_KTRA"]);
                        }
                        #endregion

                        #region CHI_SO
                        if (dsCHI_SO != null && dsCHI_SO.Tables[0].Rows.Count > 0)
                        {
                            dtpBdVipham.Text = "";
                            txtChisodungBT.Text = "";
                            txtChisodungCD.Text = "";
                            txtChisodungTD.Text = "";
                            dtpKtVipham.Text = "";
                            txtChisoVPBT.Text = "";
                            txtChisoVPCD.Text = "";
                            txtChisoVPTD.Text = "";

                            // Thông tin chỉ số kỳ đầu - chỉ số chính xác gần nhất , chỉ số gần chỉ số chính xác .... từ KY=1
                            DataRow[] dr1 = dsCHI_SO.Tables[0].Select("KY = 1");
                            if (dr1.Count() > 0)
                            {
                                double dctry;
                                txtChisodungBT.Text = dr1.CopyToDataTable().Select("BCS = 'BT'")[0]["CHISO_CU"].ToString();
                                txtChisodungCD.Text = dr1.CopyToDataTable().Select("BCS = 'CD'")[0]["CHISO_CU"].ToString();
                                txtChisodungTD.Text = dr1.CopyToDataTable().Select("BCS = 'TD'")[0]["CHISO_CU"].ToString();

                                dtpBdVipham.SelectedDate = Convert.ToDateTime(dr1[0]["NGAY_DKY"]);
                                dtimeNgayCSKYb = Convert.ToDateTime(dr1[0]["NGAY_CKY"]);
                                //BT
                                if (double.TryParse(dr1.CopyToDataTable().Select("BCS = 'BT'")[0]["CHISO_MOI"].ToString(), out dctry))
                                {
                                    CHISO_KYbBT = Convert.ToDouble(dr1.CopyToDataTable().Select("BCS = 'BT'")[0]["CHISO_MOI"]);
                                }
                                else
                                {
                                    CHISO_KYbBT = 0;
                                }
                                Id_chisoKy1BT = Convert.ToInt64(dr1.CopyToDataTable().Select("BCS = 'BT'")[0]["ID_CHISO"]);
                                sanluongKy1BT = Convert.ToDouble(dr1.CopyToDataTable().Select("BCS = 'BT'")[0]["SAN_LUONG"]);

                                //CD
                                if (double.TryParse(dr1.CopyToDataTable().Select("BCS = 'CD'")[0]["CHISO_MOI"].ToString(), out dctry))
                                {
                                    CHISO_KYbCD = Convert.ToDouble(dr1.CopyToDataTable().Select("BCS = 'CD'")[0]["CHISO_MOI"]);
                                }
                                else
                                {
                                    CHISO_KYbCD = 0;
                                }
                                Id_chisoKy1CD = Convert.ToInt64(dr1.CopyToDataTable().Select("BCS = 'CD'")[0]["ID_CHISO"]);
                                sanluongKy1CD = Convert.ToDouble(dr1.CopyToDataTable().Select("BCS = 'CD'")[0]["SAN_LUONG"]);

                                //TD
                                if (double.TryParse(dr1.CopyToDataTable().Select("BCS = 'TD'")[0]["CHISO_MOI"].ToString(), out dctry))
                                {
                                    CHISO_KYbTD = Convert.ToDouble(dr1.CopyToDataTable().Select("BCS = 'TD'")[0]["CHISO_MOI"]);
                                }
                                else
                                {
                                    CHISO_KYbTD = 0;
                                }
                                Id_chisoKy1TD = Convert.ToInt64(dr1.CopyToDataTable().Select("BCS = 'TD'")[0]["ID_CHISO"]);
                                sanluongKy1TD = Convert.ToDouble(dr1.CopyToDataTable().Select("BCS = 'TD'")[0]["SAN_LUONG"]);

                                hsnBG = Convert.ToInt32(dr1[0]["HSN"]);
                            }                            

                            // Thông tin chỉ số kỳ giữa - kỳ lấy tổng sluong các kỳ giữa KY=2
                            DataRow[] dr2 = dsCHI_SO.Tables[0].Select("KY = 2");
                            if (dr2.Count() > 0)
                            {
                                Id_chisoKy2BT = Convert.ToInt32(dr2.CopyToDataTable().Select("BCS = 'BT'")[0]["ID_CHISO"]);
                                Id_chisoKy2CD = Convert.ToInt32(dr2.CopyToDataTable().Select("BCS = 'CD'")[0]["ID_CHISO"]);
                                Id_chisoKy2TD = Convert.ToInt32(dr2.CopyToDataTable().Select("BCS = 'TD'")[0]["ID_CHISO"]);

                                sanluongKy2BT = Convert.ToDouble(dr2.CopyToDataTable().Select("BCS = 'BT'")[0]["SAN_LUONG"]);
                                sanluongKy2CD = Convert.ToDouble(dr2.CopyToDataTable().Select("BCS = 'CD'")[0]["SAN_LUONG"]);
                                sanluongKy2TD = Convert.ToDouble(dr2.CopyToDataTable().Select("BCS = 'TD'")[0]["SAN_LUONG"]);
                            }

                            // Thông tin chỉ số kỳ cuối - chỉ số khi phát hiện vi phạm , chỉ số gần chỉ số vi phạm .... từ KY=3
                            DataRow[] dr3 = dsCHI_SO.Tables[0].Select("KY = 3");
                            if (dr3.Count() > 0)
                            {
                                double dctry;
                                txtChisoVPBT.Text = dr3.CopyToDataTable().Select("BCS = 'BT'")[0]["CHISO_MOI"].ToString();
                                txtChisoVPCD.Text = dr3.CopyToDataTable().Select("BCS = 'CD'")[0]["CHISO_MOI"].ToString();
                                txtChisoVPTD.Text = dr3.CopyToDataTable().Select("BCS = 'TD'")[0]["CHISO_MOI"].ToString();

                                dtpKtVipham.SelectedDate = Convert.ToDateTime(dr3[0]["NGAY_CKY"]);
                                dtimeNgayCSKYe = Convert.ToDateTime(dr3[0]["NGAY_DKY"]);

                                //BT
                                if (double.TryParse(dr3.CopyToDataTable().Select("BCS = 'BT'")[0]["CHISO_CU"].ToString(), out dctry))
                                {
                                    CHISO_KYeBT = Convert.ToDouble(dr3.CopyToDataTable().Select("BCS = 'BT'")[0]["CHISO_CU"]);
                                }
                                else
                                {
                                    CHISO_KYeBT = 0;
                                }
                                Id_chisoKy3BT = Convert.ToInt64(dr3.CopyToDataTable().Select("BCS = 'BT'")[0]["ID_CHISO"]);
                                sanluongKy3BT = Convert.ToDouble(dr3.CopyToDataTable().Select("BCS = 'BT'")[0]["SAN_LUONG"]);

                                //CD
                                if (double.TryParse(dr3.CopyToDataTable().Select("BCS = 'CD'")[0]["CHISO_CU"].ToString(), out dctry))
                                {
                                    CHISO_KYeCD = Convert.ToDouble(dr3.CopyToDataTable().Select("BCS = 'CD'")[0]["CHISO_CU"]);
                                }
                                else
                                {
                                    CHISO_KYeCD = 0;
                                }
                                Id_chisoKy3CD = Convert.ToInt64(dr3.CopyToDataTable().Select("BCS = 'CD'")[0]["ID_CHISO"]);
                                sanluongKy3CD = Convert.ToDouble(dr3.CopyToDataTable().Select("BCS = 'CD'")[0]["SAN_LUONG"]);

                                //TD
                                if (double.TryParse(dr3.CopyToDataTable().Select("BCS = 'TD'")[0]["CHISO_CU"].ToString(), out dctry))
                                {
                                    CHISO_KYeTD = Convert.ToDouble(dr3.CopyToDataTable().Select("BCS = 'TD'")[0]["CHISO_CU"]);
                                }
                                else
                                {
                                    CHISO_KYeTD = 0;
                                }
                                Id_chisoKy3TD = Convert.ToInt64(dr3.CopyToDataTable().Select("BCS = 'TD'")[0]["ID_CHISO"]);
                                sanluongKy3TD = Convert.ToDouble(dr3.CopyToDataTable().Select("BCS = 'TD'")[0]["SAN_LUONG"]);

                                hsnEND = Convert.ToInt32(dr3[0]["HSN"]);
                            }
                        }
                        else
                        {
                            dtpBdVipham.Text = "";
                            txtChisodungBT.Text = "";
                            txtChisodungCD.Text = "";
                            txtChisodungTD.Text = "";
                            dtpKtVipham.Text = "";
                            txtChisoVPBT.Text = "";
                            txtChisoVPCD.Text = "";
                            txtChisoVPTD.Text = "";
                        }
                        #endregion

                        #region DIEM_DO
                        if (dsDDO != null && dsDDO.Tables[0].Rows.Count > 0)
                        {
                            txtMa_ddo_I.Text = dsDDO.Tables[0].Rows[0]["MA_DDO"].ToString();
                            strMa_ddo = dsDDO.Tables[0].Rows[0]["MA_DDO"].ToString();

                            #region Xóa hiển thị cũ nếu có từ trước
                            //txtSLtt.Text = "";
                            //txtTientt.Text = "";
                            txtSogiomatdienVP.Text = "";
                            txtSanluongHedd.Text = "";
                            txtGia.Text = "";
                            txtSocto.Text = "";
                            txtMacto.Text = "";                            
                            #endregion

                            SongayVP = Convert.ToDouble(dsDDO.Tables[0].Rows[0]["TG_VIPHAM"]);
                            SanluongHedd = Convert.ToDouble(dsDDO.Tables[0].Rows[0]["SL_DODEM"]);
                            txtSanluongHedd.Text = SanluongHedd.ToString();
                            SanluongVP = Convert.ToDouble(dsDDO.Tables[0].Rows[0]["SL_VIPHAM"]);
                            SanluongSudung = Convert.ToDouble(dsDDO.Tables[0].Rows[0]["SL_SUDUNG"]);

                            txtSogiomatdienVP.Text = dsDDO.Tables[0].Rows[0]["TG_MDIEN"].ToString();
                            sogiomatdien = Convert.ToDouble(dsDDO.Tables[0].Rows[0]["TG_MDIEN"]);

                            strChuoi_gia = dsDDO.Tables[0].Rows[0]["CHUOI_GIA"].ToString();
                            txtGia.Text = strChuoi_gia;
                            Thanhtien = Convert.ToDouble(dsDDO.Tables[0].Rows[0]["THANH_TIEN"]);
                            //strSo_cto = dsDDO.Tables[0].Rows[0]["SO_CTO"].ToString();
                            //strMa_cto = dsDDO.Tables[0].Rows[0]["MA_CTO"].ToString();   
                            
                            if (dsDDO.Tables[0].Rows[0]["MA_LDO"].ToString().Substring(1, 1) == "1") // co he do dem
                            {
                                ckbKhongHedd.IsChecked = false;
                                checkCoHedd = true;
                                strSo_cto = dsDDO.Tables[0].Rows[0]["SO_CTO"].ToString() == string.Empty ? "" : dsDDO.Tables[0].Rows[0]["SO_CTO"].ToString();
                                strMa_cto = dsDDO.Tables[0].Rows[0]["MA_CTO"].ToString() == string.Empty ? "" : dsDDO.Tables[0].Rows[0]["MA_CTO"].ToString();
                                txtSocto.Text = strSo_cto;
                                txtMacto.Text = strMa_cto;

                                if (dsDDO.Tables[0].Rows[0]["MA_LDO"].ToString().Substring(2, 1) == "0") //ko co chi so dung gan nhat
                                {
                                    ckbKhongcsDau.IsChecked = true;
                                    checkCoCSdau = false;
                                    txtChisodungBT.Text = "";
                                    txtChisodungCD.Text = "";
                                    txtChisodungTD.Text = "";
                                }
                                else
                                {
                                    ckbKhongcsDau.IsChecked = false;
                                    checkCoCSdau = true;
                                }
                            }
                            else
                            {
                                ckbKhongHedd.IsChecked = true;
                                checkCoHedd = false;
                                ckbKhongcsDau.IsChecked = true;
                                checkCoCSdau = false;
                                txtChisodungBT.Text = "";
                                txtChisodungCD.Text = "";
                                txtChisodungTD.Text = "";
                            }
                        }
                        else
                        {
                            MessageBox.Show("Không có thông tin truy thu !");
                        }
                        #endregion

                        #region DSACHTBI
                        lblDientt.Content = "";
                        if (dsDSACHTBI != null && dsDSACHTBI.Tables[0].Rows.Count > 0)
                        {
                            dt = dsDSACHTBI.Tables[0].Copy();
                            dgrDSach_Thietbi.ItemsSource = dt.DefaultView;
                        }
                        else
                        {
                            dgrDSach_Thietbi.ItemsSource = null;
                        }

                        #endregion

                        tabTruythu.IsSelected = true;

                    }
                }
            }
            catch (Exception ex)
            { MessageBox.Show(ex.ToString()); return; }

        }

        private void btnLayDuLieu_S_DDO_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                if (txtMa_khang_S_DDO.Text.Trim().ToString() != string.Empty)
                {
                    string strMa_khang = txtMa_khang_S_DDO.Text.Trim().ToString();
                    DataSet ds = new DataSet();
                    strError = "";
                    ds = GlobalServices.Service_Truythu.Get_DDO_by_MaKHANG(strMa_dviqly, strMa_khang, ref strError);
                    if (ds != null && ds.Tables[0].Rows.Count > 0)
                    {
                        dgrDSach_DDo.ItemsSource = ds.Tables[0].DefaultView;
                    }
                    else
                    {
                        MessageBox.Show("Không lấy được dữ liệu \n" + strError.ToString());
                    }
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
        }

        private void btnNewrow_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                DataRow dr = dt.NewRow();
                dt.Rows.Add(dr);
                dt.AcceptChanges();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
        }

        private void btnDeleterow_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                DataRowView drv = dgrDSach_Thietbi.SelectedItem as DataRowView;
                if (drv != null)
                {
                    DataRow dr = drv.Row as DataRow;
                    dt.Rows.Remove(dr);
                    dt.AcceptChanges();
                    //dgrDSach_Thietbi.Items.Remove(drv);
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
        }

        private void ckbKhongHedd_Checked(object sender, RoutedEventArgs e)
        {
            try
            {
                if (strSuaThemmoi == "THEM" || strSuaThemmoi == "SUA")
                {                    
                    checkCoHedd = false;
                    txtChisodungBT.IsEnabled = false;
                    txtChisodungCD.IsEnabled = false;
                    txtChisodungTD.IsEnabled = false;
                    
                    txtChisoVPBT.IsEnabled = false;
                    txtChisoVPCD.IsEnabled = false;
                    txtChisoVPTD.IsEnabled = false;
                    txtSanluongHedd.IsEnabled = false;
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
        }

        private void ckbKhongHedd_Unchecked(object sender, RoutedEventArgs e)
        {
            try
            {
                if (strSuaThemmoi == "THEM" || strSuaThemmoi == "SUA")
                {
                    checkCoHedd = true;
                    txtChisodungBT.IsEnabled = true;
                    txtChisodungCD.IsEnabled = true;
                    txtChisodungTD.IsEnabled = true;

                    txtChisoVPBT.IsEnabled = true;
                    txtChisoVPCD.IsEnabled = true;
                    txtChisoVPTD.IsEnabled = true;
                    txtSanluongHedd.IsEnabled = true;
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
        }

        private void ckbKhongcsDau_Checked(object sender, RoutedEventArgs e)
        {
            try
            {
                if (strSuaThemmoi == "THEM" || strSuaThemmoi == "SUA")
                {
                    checkCoCSdau = false;
                    txtChisodungBT.IsEnabled = false;
                    txtChisodungCD.IsEnabled = false;
                    txtChisodungTD.IsEnabled = false;
                    txtChisodungBT.Text = "";
                    txtChisodungCD.Text = "";
                    txtChisodungTD.Text = "";
                }

            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
        }

        private void ckbKhongcsDau_Unchecked(object sender, RoutedEventArgs e)
        {
            try
            {
                if (strSuaThemmoi == "THEM" || strSuaThemmoi == "SUA")
                {
                    checkCoCSdau = true;
                    txtChisodungBT.IsEnabled = true;
                    txtChisodungCD.IsEnabled = true;
                    txtChisodungTD.IsEnabled = true;
                    txtChisodungBT.Text = "";
                    txtChisodungCD.Text = "";
                    txtChisodungTD.Text = "";
                }

            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
        }

        private void btnLayGia_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                DataSet ds = new DataSet();
                if (cboLoaiGia.SelectedIndex == 0)
                {
                    ds = GlobalServices.Service_Truythu.Get_Gia5tp(strMa_dviqly, "SHBT", "0", ref strError);
                }
                if (cboLoaiGia.SelectedIndex == 1)
                {
                    ds = GlobalServices.Service_Truythu.Get_Gia5tp(strMa_dviqly, "KDDV", "0", ref strError);
                }
                if (cboLoaiGia.SelectedIndex == 2)
                {
                    ds = GlobalServices.Service_Truythu.Get_Gia5tp(strMa_dviqly, "SXBT", "2", ref strError);
                }
                if (cboLoaiGia.SelectedIndex == 3)
                {
                    ds = GlobalServices.Service_Truythu.Get_Gia5tp(strMa_dviqly, "SXBT", "4", ref strError);
                }
                if (cboLoaiGia.SelectedIndex == 4)
                {
                    ds = GlobalServices.Service_Truythu.Get_Gia5tp(strMa_dviqly, "SXBT", "7", ref strError);
                }
                if (cboLoaiGia.SelectedIndex == 5)
                {
                    ds = GlobalServices.Service_Truythu.Get_Gia5tp(strMa_dviqly, "SXBT", "8", ref strError);
                }
                if (cboLoaiGia.SelectedIndex == 6)
                {
                    ds = GlobalServices.Service_Truythu.Get_Gia5tp(strMa_dviqly, "CQ", "0", ref strError);
                }
                if (cboLoaiGia.SelectedIndex == 7)
                {
                    ds = GlobalServices.Service_Truythu.Get_Gia5tp(strMa_dviqly, "SXD1", "0", ref strError);
                }

                if (ds != null && ds.Tables[0].Rows.Count > 0)
                {
                    txtGia.Text = ds.Tables[0].Rows[0]["DON_GIA"].ToString();
                }

            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
        }
    }
}

